2015-10-09 10 views
5

のための明示的な実装私はJSONの解析用aesonライブラリを使用しようとしていますし、私はマニュアルを参照して、以下の午前は、これが今の私のコードです:予期しないHaskellのアイソーン警告:「toJSON」

{-# LANGUAGE OverloadedStrings #-} 
{-# LANGUAGE DeriveGeneriC#-} 

import Data.Aeson as Ae 
import Data.Text as T 
import qualified Data.ByteString.Lazy as BS 
import GHC.Generics 

data Episode = Episode { season :: Int 
         , epNum :: Int 
         } deriving (Show, Generic) 

data Series = Series { title  :: !T.Text 
        , curEpisode :: Episode 
        } deriving (Show, Generic) 

instance FromJSON Episode 
instance ToJSON Episode   -- Warning here 
instance FromJSON Main.Series 
instance ToJSON Main.Series  -- Warning here 

問題があります。

src\Main.hs:21:10: Warning: 
    No explicit implementation for 
     `toJSON' 
    In the instance declaration for `ToJSON Episode' 

src\Main.hs:22:10: Warning: 
    No explicit implementation for 
     `toJSON' 
    In the instance declaration for `ToJSON Main.Series' 

私はこの出来事である理由を把握することはできません

EDIT:私はそれらの2回の警告を得ること

GHCのバージョン:バージョン7.10.2アイソーン

:0.10.0.0(最新)

+0

奇妙な。 'aeson'のバージョンはこれですか?どのバージョンのGHCですか? – dfeuer

+0

@dfeuer本当に奇妙です。私はそれらの情報を含めるために投稿を編集しました! – TheCrafter

答えて

5

私はこれを行うことにより、警告を回避することができます。

instance FromJSON Episode 
instance ToJSON Episode where 
    toJSON = genericToJSON defaultOptions 
instance FromJSON Main.Series 
instance ToJSON Main.Series where 
    toJSON = genericToJSON defaultOptions 

私はまだありませんなぜ警告がそこにあるのか知っていますが、すでにバグレポートon githubがあることがわかりました。

+2

ああ、間違って '{ - #MINIMAL toJSON# - }'プラグマを 'ToJSON'クラス定義に追加したようです。おっとっと。彼らはまた、孤児のインスタンスでいっぱいのモジュールを使用してすべての一般的なものを扱いますが、これはかなり深刻に醜いです。 – dfeuer

+0

@dfeuerええ、あなたは正しいです。 – TheCrafter

関連する問題