Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
The shared functionality behind Lens.Family.TH and Lens.Family2.TH.
Synopsis
- defaultNameTransform :: String -> Maybe String
- type LensTypeInfo = (Name, [TyVarBndr ()])
- type ConstructorFieldInfo = (Name, Strict, Type)
- deriveLenses :: (Name -> LensTypeInfo -> ConstructorFieldInfo -> Q [Dec]) -> (String -> Maybe String) -> Name -> Q [Dec]
- makeTraversals :: Name -> Q [Dec]
Documentation
defaultNameTransform :: String -> Maybe String Source #
By default, if the field name begins with an underscore, then the underscore will simply be removed (and the new first character lowercased if necessary).
type LensTypeInfo = (Name, [TyVarBndr ()]) Source #
Information about the larger type the lens will operate on.
type ConstructorFieldInfo = (Name, Strict, Type) Source #
Information about the smaller type the lens will operate on.
:: (Name -> LensTypeInfo -> ConstructorFieldInfo -> Q [Dec]) | the signature deriver |
-> (String -> Maybe String) | the name transformer |
-> Name | |
-> Q [Dec] |
The true workhorse of lens derivation. This macro is parameterized by a macro that derives signatures, as well as a function that filters and transforms names. Producing Nothing means that a lens should not be generated for the provided name.