Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
This module is designed to provide a TemplateHaskell
alternative to
Options.Generic.
Synopsis
- deriveParseRecord :: Modifiers -> Name -> Q [Dec]
- module Options.Generic
Documentation
deriveParseRecord :: Modifiers -> Name -> Q [Dec] Source #
This function derives ParseRecord
for you without incurring a Generic
dependency.
The main barrier here to fully supporting the library is that the API for
ParseRecord
does not expose the function that provides modifiers by
default. So we can provide an instance of ParseRecord
, but we can't provide
a replacement of parseRecordWithModifiers
, because that function is defined
as a top-level that delegates directly to the generic.
parseRecordWithModifiers :: (Generic a, GenericParseRecord (Rep a)) => Modifiers -> Parser parseRecordWithModifiers modifiers = fmap GHC.Generics.to (genericParseRecord modifiers)
This means that we need to shift the options to the compile-time site, instead of the runtime site.
Likewise, we cannot provide an instance of Unwrappable
, because it's not
a class - it's a type alias for Generic
stuff. So we need to create
a separate top-level function that does the unwrap.
Since: 0.1.0.0
module Options.Generic