lens-3.0: Lenses, Folds and Traversals

PortabilityTemplateHaskell
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellTrustworthy

Language.Haskell.TH.Lens

Description

Lenses and Traversals for working with Template Haskell

Synopsis

Documentation

class HasName t whereSource

Has a Name

Methods

name :: Simple Lens t NameSource

Extract (or modify) the Name of something

class HasTypeVars t whereSource

Provides for the extraction of free type variables, and alpha renaming.

Methods

typeVarsEx :: Set Name -> Simple Traversal t NameSource

When performing substitution into this traversal you're not allowed to substitute in a name that is bound internally or you'll violate the Traversal laws, when in doubt generate your names with newName.

class SubstType t whereSource

Provides substitution for types

Methods

substType :: Map Name Type -> t -> tSource

Perform substitution for types

typeVars :: HasTypeVars t => Simple Traversal t NameSource

Traverse free type variables

substTypeVars :: HasTypeVars t => Map Name Name -> t -> tSource

Substitute using a map of names in for free type variables

conFields :: Simple Traversal Con StrictTypeSource

Provides a Traversal of the types of each field of a constructor.

conNamedFields :: Simple Traversal Con VarStrictTypeSource

Traversal of the types of the named fields of a constructor.