我有一个模块Foo.hs
,其中包含一个不派生的定义Generic
:
-- Foo.hs
data Blather = Blather ... -- Generic not derived here
在另一个模块中我想派生ToJSON
:
-- Bar.hs
{-# LANGUAGE DeriveGeneric, DeriveAnyClass #-}
import GHC.Generics
import Data.Aeson
instance Generic Blather
instance ToJSON Blather
但它不编译。如果我在定义站点导出 Generic,Foo.hs
我稍后可以ToJSON
在另一个模块中导出。
我可以ToJSON Blather
在Bar.hs
不修改原件的情况下推导出来Foo.hs
吗?
或者有没有简单instance ToJSON Blather
的手写方式?