lens-family-th-0.5.2.0: Generate lens-family style lenses
Safe HaskellNone
LanguageHaskell2010

Lens.Family.THCore

Description

The shared functionality behind Lens.Family.TH and Lens.Family2.TH.

Synopsis

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.

deriveLenses Source #

Arguments

:: (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.

makeTraversals :: Name -> Q [Dec] Source #

Derive traversals for each constructor in a data or newtype declaration, Traversals will be named by prefixing the constructor name with an underscore.

Example usage:

$(makeTraversals ''Foo)