Safe Haskell | None |
---|---|
Language | Haskell2010 |
- gtoJSON :: (Representable a, GToJSON (Rep a)) => a -> Value
- gparseJSON :: (Representable a, GFromJSON (Rep a)) => Value -> Parser a
- class GToJSON a
- class GFromJSON a
- class GSumFromJSON a
- class GSumToJSON a
- class GSumSize a
Documentation
You can use gtoJSON
and gparseJSON
as your generic toJSON
and
parseJSON
implementations for any Representable
type as follows:
instanceToJSON
MyType where toJSON =gtoJSON
instanceFromJSON
MyType where parseJSON =gparseJSON
gparseJSON :: (Representable a, GFromJSON (Rep a)) => Value -> Parser a Source
Internals
gtoJSON'
GToJSON Z Source | |
GToJSON U Source | |
ToJSON a => GToJSON (Var a) Source | |
ToJSON a => GToJSON (Rec a) Source | |
(GSumToJSON a, GSumToJSON b, GSumSize * a, GSumSize * b, GToJSON a, GToJSON b) => GToJSON ((:+:) a b) Source | |
(GToJSON a, GToJSON b) => GToJSON ((:*:) a b) Source | |
GToJSON a => GToJSON (CEq k k c p q a) Source | |
GToJSON a => GToJSON (CEq k k c p p a) Source |
gparseJSON'
GFromJSON Z Source | |
GFromJSON U Source | |
FromJSON a => GFromJSON (Var a) Source | |
FromJSON a => GFromJSON (Rec a) Source | |
(GSumFromJSON a, GSumFromJSON b, GSumSize * a, GSumSize * b, GFromJSON a, GFromJSON b) => GFromJSON ((:+:) a b) Source | |
(GFromJSON a, GFromJSON b) => GFromJSON ((:*:) a b) Source | |
GFromJSON (CEq k k c p q a) Source | |
GFromJSON a => GFromJSON (CEq k k c p p a) Source |
Even more internal
class GSumFromJSON a Source
gsumParseJSON
(GSumFromJSON a, GSumFromJSON b, GFromJSON a, GFromJSON b) => GSumFromJSON ((:+:) a b) Source | |
GSumFromJSON (CEq k k c p q a) Source | |
GFromJSON a => GSumFromJSON (CEq k k c p p a) Source |
class GSumToJSON a Source
gsumToJSON
(GSumToJSON a, GSumToJSON b, GToJSON a, GToJSON b) => GSumToJSON ((:+:) a b) Source | |
GToJSON a => GSumToJSON (CEq k k c p q a) Source | |
GToJSON a => GSumToJSON (CEq k k c p p a) Source |