2016-07-02 9 views
1

現在、私はHaskellでTwitter CLIクライアントを構築していますが、私はDMを表すデータ型とツイートを表すデータ型を持っています。しかし、私は両方に同じ名前を使用する必要があるため、複数の宣言エラーが発生します。データ型宣言で複数の宣言エラーが発生しました

data Users = Users { screen_name :: String } deriving(Show, Generic) 


data Tweet = Tweet { text :: !Text, 
        retweeted :: Bool, 
        user :: Users 
        } deriving (Show, Generic) 

data DM = DM { text :: !Text, 
       sender_screen_name :: String 
      } deriving (Show, Generic) 

誰かがこの特定の問題の解決策を知っていますか?

+2

異なるモジュールにそれを移動したり( 'dm_text'、...)それらの名前を変更 - あなたはGHC 8上にある場合は、を見てすることができます:あなたは、あなたのファイルでこれを宣言することにより、それを行うことができます[DuplicateRecordFields](https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/DuplicateRecordFields)個人的に私はこれがあまりにも好きではない – Carsten

+0

問題は、それがAPIの名前と一致する必要があるということですそれは私が必要とする情報を返すので、dm_textは動作しません。私はモジュールを作成しようとしています –

+1

はい、あなたはいつもJSONインスタンスを実装するオプションがあります - 名前は関係ありませんが(おそらくモジュールは簡単でしょう)) – Carsten

答えて

0

hereと定義されているように、指定されたメンバーは、データ構造内の値を呼び出すために使用される単なる関数です。

実際に使用する場合は、言語拡張機能を使用してください。どちらか

{-# LANGUAGE DuplicateRecordFields #-}

関連する問題