-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Type driven generic aeson instance customisation -- -- This package provides a newtype wrapper with FromJSON/ToJSON instances -- customisable via a phantom type parameter. The instances can be -- rendered to the original type using DerivingVia. @package deriving-aeson @version 0 -- | Type-directed aeson instance CustomJSONisation module Deriving.Aeson -- | A newtype wrapper which gives FromJSON/ToJSON instances with modified -- options. newtype CustomJSON t a CustomJSON :: a -> CustomJSON t a [unCustomJSON] :: CustomJSON t a -> a -- | Function applied to field labels. Handy for removing common record -- prefixes for example. data FieldLabelModifier t -- | Function applied to constructor tags which could be handy for -- lower-casing them for example. data ConstrctorTagModifier t -- | Record fields with a Nothing value will be omitted from the resulting -- object. data OmitNothingFields -- | Encode types with a single constructor as sums, so that -- allNullaryToStringTag and sumEncoding apply. data TagSingleConstructors -- | the encoding will always follow the sumEncoding. data NoAllNullaryToStringTag -- | Strip prefix t. If it doesn't have the prefix, keep it as-is. data StripPrefix t -- | CamelCase to kebab-case data CamelToKebab -- | CamelCase to snake_case data CamelToSnake -- | Reify Options from a type-level list class AesonOptions xs aesonOptions :: AesonOptions xs => Options -- | Reify a function which modifies names class StringModifier t getStringModifier :: StringModifier t => String -> String class FromJSON a class ToJSON a -- | Representable types of kind *. This class is derivable in GHC -- with the DeriveGeneric flag on. -- -- A Generic instance must satisfy the following laws: -- --
-- from . to ≡ id -- to . from ≡ id --class Generic a instance forall k (t :: k) a. (Deriving.Aeson.AesonOptions t, GHC.Generics.Generic a, Data.Aeson.Types.FromJSON.GFromJSON Data.Aeson.Types.Generic.Zero (GHC.Generics.Rep a)) => Data.Aeson.Types.FromJSON.FromJSON (Deriving.Aeson.CustomJSON t a) instance forall k (t :: k) a. (Deriving.Aeson.AesonOptions t, GHC.Generics.Generic a, Data.Aeson.Types.Class.GToJSON Data.Aeson.Types.Generic.Zero (GHC.Generics.Rep a)) => Data.Aeson.Types.ToJSON.ToJSON (Deriving.Aeson.CustomJSON t a) instance Deriving.Aeson.AesonOptions '[] instance Deriving.Aeson.AesonOptions xs => Deriving.Aeson.AesonOptions (Deriving.Aeson.OmitNothingFields : xs) instance forall k (f :: k) (xs :: [*]). (Deriving.Aeson.StringModifier f, Deriving.Aeson.AesonOptions xs) => Deriving.Aeson.AesonOptions (Deriving.Aeson.FieldLabelModifier f : xs) instance forall k (f :: k) (xs :: [*]). (Deriving.Aeson.StringModifier f, Deriving.Aeson.AesonOptions xs) => Deriving.Aeson.AesonOptions (Deriving.Aeson.ConstrctorTagModifier f : xs) instance Deriving.Aeson.AesonOptions xs => Deriving.Aeson.AesonOptions (Deriving.Aeson.TagSingleConstructors : xs) instance Deriving.Aeson.AesonOptions xs => Deriving.Aeson.AesonOptions (Deriving.Aeson.NoAllNullaryToStringTag : xs) instance GHC.TypeLits.KnownSymbol k => Deriving.Aeson.StringModifier (Deriving.Aeson.StripPrefix k) instance (Deriving.Aeson.StringModifier a, Deriving.Aeson.StringModifier b) => Deriving.Aeson.StringModifier (a, b) instance Deriving.Aeson.StringModifier Deriving.Aeson.CamelToKebab instance Deriving.Aeson.StringModifier Deriving.Aeson.CamelToSnake