意外的 Haskell Aeson 警告:没有针对"toJSON"的显式实现



我正在尝试使用aeson库进行json解析,我正在遵循文档。这是我现在的代码:

{-# 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

问题是我得到了两个警告:

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

我不明白为什么会发生这种事。

编辑:

GHC版本:7.10.2

aeson version: 0.10.0.0 (latest)

我可以通过这样做来解决警告:

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

我仍然不知道为什么有警告,但我看到github上已经有一个错误报告。

最新更新