并提前感谢您的帮助:)
这是我要解决的问题:
我有一个类型(MyType
),我为它写了一个 JSON 解析器(使用 aeson 库),这个解析器依赖于另一个值(Config
):
import Data.Aeson
data MyType = MyType Text
data Config = Config Text
parseMyType :: Config -> Value -> Parser MyType
parseMyType (Config f) (Object o) = do (String v) <- o .: f
return $ MyType v
我真正想FromJSON
为它写一个实例......但parseJSON
唯一取决于Value
(不能有配置):
instance FromJSON MyType where
parseJSON :: Value -> Parser MyType
parseJSON = ???
我想知道在这种情况下是否可以使用类型类。我可能错过了一些类型技巧......或者我可以使用语言扩展?
谢谢!