lens-4.19.2: Lenses, Folds and Traversals
Copyright(C) 2012-2016 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
PortabilityTemplateHaskell
Safe HaskellTrustworthy
LanguageHaskell2010

Language.Haskell.TH.Lens

Description

Lenses, Prisms, and Traversals for working with Template Haskell.

Beware that the API offered in this module is subject to change, as it mirrors the API exposed by the template-haskell package, which frequently changes between different releases of GHC. An effort is made to identify the functions in this module which have different type signatures when compiled with different versions of template-haskell.

Synopsis

Traversals

class HasName t where Source #

Has a Name

Methods

name :: Lens' t Name Source #

Extract (or modify) the Name of something

Instances

Instances details
HasName Name Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

name :: Lens' Name Name Source #

HasName InjectivityAnn Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

name :: Lens' InjectivityAnn Name Source #

HasName Con Source #

On template-haskell-2.11.0.0 or later, if a GadtC or RecGadtC has multiple Names, the leftmost Name will be chosen.

Instance details

Defined in Language.Haskell.TH.Lens

Methods

name :: Lens' Con Name Source #

HasName Foreign Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

name :: Lens' Foreign Name Source #

HasName RuleBndr Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

name :: Lens' RuleBndr Name Source #

HasName TyVarBndr Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

name :: Lens' TyVarBndr Name Source #

HasName TypeFamilyHead Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

name :: Lens' TypeFamilyHead Name Source #

class HasTypes t where Source #

Contains some amount of Types inside

Methods

types :: Traversal' t Type Source #

Traverse all the types

Instances

Instances details
HasTypes Type Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

types :: Traversal' Type Type Source #

HasTypes Con Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

types :: Traversal' Con Type Source #

HasTypes Foreign Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

types :: Traversal' Foreign Type Source #

HasTypes TySynEqn Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

types :: Traversal' TySynEqn Type Source #

HasTypes t => HasTypes [t] Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

types :: Traversal' [t] Type Source #

class HasTypeVars t where Source #

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

Methods

typeVarsEx :: Set Name -> Traversal' t Name Source #

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.

Instances

Instances details
HasTypeVars Type Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

typeVarsEx :: Set Name -> Traversal' Type Name Source #

HasTypeVars Name Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

typeVarsEx :: Set Name -> Traversal' Name Name Source #

HasTypeVars Con Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

typeVarsEx :: Set Name -> Traversal' Con Name Source #

HasTypeVars TyVarBndr Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

typeVarsEx :: Set Name -> Traversal' TyVarBndr Name Source #

HasTypeVars t => HasTypeVars [t] Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

typeVarsEx :: Set Name -> Traversal' [t] Name Source #

HasTypeVars t => HasTypeVars (Maybe t) Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

typeVarsEx :: Set Name -> Traversal' (Maybe t) Name Source #

class SubstType t where Source #

Provides substitution for types

Methods

substType :: Map Name Type -> t -> t Source #

Perform substitution for types

Instances

Instances details
SubstType Type Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

substType :: Map Name Type -> Type -> Type Source #

SubstType t => SubstType [t] Source # 
Instance details

Defined in Language.Haskell.TH.Lens

Methods

substType :: Map Name Type -> [t] -> [t] Source #

typeVars :: HasTypeVars t => Traversal' t Name Source #

Traverse free type variables

substTypeVars :: HasTypeVars t => Map Name Name -> t -> t Source #

Substitute using a map of names in for free type variables

conFields :: Traversal' Con BangType Source #

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

conFields :: Traversal' Con BangType   -- template-haskell-2.11+
conFields :: Traversal' Con StrictType -- Earlier versions

conNamedFields :: Traversal' Con VarBangType Source #

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

conNamedFields :: Traversal' Con VarBangType   -- template-haskell-2.11+
conNamedFields :: Traversal' Con VarStrictType -- Earlier versions

Lenses

Loc Lenses

locFileName :: Lens' Loc String Source #

locPackage :: Lens' Loc String Source #

locModule :: Lens' Loc String Source #

locStart :: Lens' Loc CharPos Source #

locEnd :: Lens' Loc CharPos Source #

FunDep Lenses

funDepInputs :: Lens' FunDep [Name] Source #

funDepOutputs :: Lens' FunDep [Name] Source #

Match Lenses

matchPattern :: Lens' Match Pat Source #

matchBody :: Lens' Match Body Source #

Fixity Lenses

fixityDirection :: Lens' Fixity FixityDirection Source #

Clause Lenses

clausePattern :: Lens' Clause [Pat] Source #

clauseBody :: Lens' Clause Body Source #

clauseDecs :: Lens' Clause [Dec] Source #

FieldExp Lenses

fieldExpName :: Lens' FieldExp Name Source #

FieldPat Lenses

fieldPatName :: Lens' FieldPat Name Source #

fieldPatPattern :: Lens' FieldPat Pat Source #

TySynEqn Lenses

tySynEqnLHS :: Lens' TySynEqn Type Source #

tySynEqnPatterns :: Lens' TySynEqn [Type] Source #

tySynEqnResult :: Lens' TySynEqn Type Source #

InjectivityAnn Lenses

injectivityAnnOutput :: Lens' InjectivityAnn Name Source #

injectivityAnnInputs :: Lens' InjectivityAnn [Name] Source #

TypeFamilyHead Lenses

typeFamilyHeadName :: Lens' TypeFamilyHead Name Source #

typeFamilyHeadTyVarBndrs :: Lens' TypeFamilyHead [TyVarBndr] Source #

typeFamilyHeadResultSig :: Lens' TypeFamilyHead FamilyResultSig Source #

typeFamilyHeadInjectivityAnn :: Lens' TypeFamilyHead (Maybe InjectivityAnn) Source #

Bang Lenses

bangSourceUnpackedness :: Lens' Bang SourceUnpackedness Source #

bangSourceStrictness :: Lens' Bang SourceStrictness Source #

DerivClause Lenses

derivClauseStrategy :: Lens' DerivClause (Maybe DerivStrategy) Source #

derivClauseCxt :: Lens' DerivClause Cxt Source #

Prisms

Info Prisms

_ClassI :: Prism' Info (Dec, [InstanceDec]) Source #

_ClassOpI :: Prism' Info (Name, Type, ParentName) Source #

_ClassOpI :: Prism' Info (Name, Type, ParentName)         -- template-haskell-2.11+
_ClassOpI :: Prism' Info (Name, Type, ParentName, Fixity) -- template-haskell-2.8 through 2.10
_ClassOpI :: Prism' Info (Name, Type, Name,       Fixity) -- Earlier versions

_TyConI :: Prism' Info Dec Source #

_FamilyI :: Prism' Info (Dec, [InstanceDec]) Source #

_PrimTyConI :: Prism' Info (Name, Arity, Unlifted) Source #

_DataConI :: Prism' Info (Name, Type, ParentName) Source #

_DataConI :: Prism' Info (Name, Type, ParentName)         -- template-haskell-2.11+
_DataConI :: Prism' Info (Name, Type, ParentName, Fixity) -- template-haskell-2.8 through 2.10
_DataConI :: Prism' Info (Name, Type, Name,       Fixity) -- Earlier versions

_VarI :: Prism' Info (Name, Type, Maybe Dec) Source #

_VarI :: Prism' Info (Name, Type, Maybe Dec)         -- template-haskell-2.11+
_VarI :: Prism' Info (Name, Type, Maybe Dec, Fixity) -- Earlier versions

_TyVarI :: Prism' Info (Name, Type) Source #

_PatSynI :: Prism' Info (Name, PatSynType) Source #

Dec Prisms

_FunD :: Prism' Dec (Name, [Clause]) Source #

_ValD :: Prism' Dec (Pat, Body, [Dec]) Source #

_DataD :: DataPrism' [TyVarBndr] [Con] Source #

_DataD :: Prism' Dec (Cxt, Name, [TyVarBndr], Maybe Kind, [Con], [DerivClause]) -- template-haskell-2.12+
_DataD :: Prism' Dec (Cxt, Name, [Type],      Maybe Kind, [Con], Cxt)           -- template-haskell-2.11
_DataD :: Prism' Dec (Cxt, Name, [Type],                  [Con], [Name])        -- Earlier versions

_NewtypeD :: DataPrism' [TyVarBndr] Con Source #

_NewtypeD :: Prism' Dec (Cxt, Name, [TyVarBndr], Maybe Kind, Con, [DerivClause]) -- template-haskell-2.12+
_NewtypeD :: Prism' Dec (Cxt, Name, [Type],      Maybe Kind, Con, Cxt)           -- template-haskell-2.11
_NewtypeD :: Prism' Dec (Cxt, Name, [Type],                  Con, [Name])        -- Earlier versions

_TySynD :: Prism' Dec (Name, [TyVarBndr], Type) Source #

_ClassD :: Prism' Dec (Cxt, Name, [TyVarBndr], [FunDep], [Dec]) Source #

_InstanceD :: Prism' Dec (Maybe Overlap, Cxt, Type, [Dec]) Source #

_InstanceD :: Prism' Dec (Maybe Overlap, Cxt, Type, [Dec]) -- template-haskell-2.11+
_InstanceD :: Prism' Dec                (Cxt, Type, [Dec]) -- Earlier versions

_SigD :: Prism' Dec (Name, Type) Source #

_ForeignD :: Prism' Dec Foreign Source #

_InfixD :: Prism' Dec (Fixity, Name) Source #

_PragmaD :: Prism' Dec Pragma Source #

_DataInstD :: Prism' Dec (Cxt, Maybe [TyVarBndr], Type, Maybe Kind, [Con], [DerivClause]) Source #

_DataInstD :: Prism' Dec (Cxt, Maybe [TyVarBndr], Type, Maybe Kind, [Con], [DerivClause]) -- template-haskell-2.15+
_DataInstD :: Prism' Dec (Cxt, Name, [Type],            Maybe Kind, [Con], [DerivClause]) -- template-haskell-2.12 through 2.14
_DataInstD :: Prism' Dec (Cxt, Name, [Type],            Maybe Kind, [Con], Cxt)           -- template-haskell-2.11
_DataInstD :: Prism' Dec (Cxt, Name, [Type],                        [Con], [Name])        -- Earlier versions

_NewtypeInstD :: Prism' Dec (Cxt, Maybe [TyVarBndr], Type, Maybe Kind, Con, [DerivClause]) Source #

_NewtypeInstD :: Prism' Dec (Cxt, Maybe [TyVarBndr], Type, Maybe Kind, Con, [DerivClause]) -- template-haskell-2.15+
_NewtypeInstD :: Prism' Dec (Cxt, Name, [Type],            Maybe Kind, Con, [DerivClause]) -- template-haskell-2.12 through 2.14
_NewtypeInstD :: Prism' Dec (Cxt, Name, [Type],            Maybe Kind, Con, Cxt)           -- template-haskell-2.11
_NewtypeInstD :: Prism' Dec (Cxt, Name, [Type],                        Con, [Name])        -- Earlier versions

_TySynInstD :: Prism' Dec TySynEqn Source #

_TySynInstD :: Prism' Dec TySynEqn             -- template-haskell-2.15+
_TySynInstD :: Prism' Dec (Name, TySynEqn)     -- template-haskell-2.9 through 2.14
_TySynInstD :: Prism' Dec (Name, [Type], Type) -- Earlier versions

_ClosedTypeFamilyD :: Prism' Dec (TypeFamilyHead, [TySynEqn]) Source #

_RoleAnnotD :: Prism' Dec (Name, [Role]) Source #

_StandaloneDerivD :: Prism' Dec (Maybe DerivStrategy, Cxt, Type) Source #

_StandaloneDerivD :: Prism' Dec (Maybe DerivStrategy, Cxt, Type) -- template-haskell-2.12+
_StandaloneDerivD :: Prism' Dec                      (Cxt, Type) -- Earlier versions

_DefaultSigD :: Prism' Dec (Name, Type) Source #

_DataFamilyD :: Prism' Dec (Name, [TyVarBndr], Maybe Kind) Source #

_OpenTypeFamilyD :: Prism' Dec TypeFamilyHead Source #

_PatSynD :: Prism' Dec (Name, PatSynArgs, PatSynDir, Pat) Source #

_PatSynSigD :: Prism' Dec (Name, PatSynType) Source #

_ImplicitParamBindD :: Prism' Dec (String, Exp) Source #

PatSynDir Prisms

_Unidir :: Prism' PatSynDir () Source #

_ImplBidir :: Prism' PatSynDir () Source #

_ExplBidir :: Prism' PatSynDir [Clause] Source #

PatSynArgs Prisms

_PrefixPatSyn :: Prism' PatSynArgs [Name] Source #

_InfixPatSyn :: Prism' PatSynArgs (Name, Name) Source #

_RecordPatSyn :: Prism' PatSynArgs [Name] Source #

Con Prisms

_NormalC :: Prism' Con (Name, [BangType]) Source #

_NormalC :: Prism' Con (Name, [BangType])   -- template-haskell-2.11+
_NormalC :: Prism' Con (Name, [StrictType]) -- Earlier versions

_RecC :: Prism' Con (Name, [VarBangType]) Source #

_RecC :: Prism' Con (Name, [VarBangType])   -- template-haskell-2.11+
_RecC :: Prism' Con (Name, [VarStrictType]) -- Earlier versions

_InfixC :: Prism' Con (BangType, Name, BangType) Source #

_InfixC :: Prism' Con (BangType,   Name, BangType)   -- template-haskell-2.11+
_InfixC :: Prism' Con (StrictType, Name, StrictType) -- Earlier versions

_ForallC :: Prism' Con ([TyVarBndr], Cxt, Con) Source #

_GadtC :: Prism' Con ([Name], [BangType], Type) Source #

_RecGadtC :: Prism' Con ([Name], [VarBangType], Type) Source #

Overlap Prisms

_Overlapping :: Prism' Overlap () Source #

_Overlaps :: Prism' Overlap () Source #

_Incoherent :: Prism' Overlap () Source #

SourceUnpackedness Prisms

_NoSourceUnpackedness :: Prism' SourceUnpackedness () Source #

_SourceNoUnpack :: Prism' SourceUnpackedness () Source #

_SourceUnpack :: Prism' SourceUnpackedness () Source #

SourceStrictness Prisms

_NoSourceStrictness :: Prism' SourceStrictness () Source #

_SourceLazy :: Prism' SourceStrictness () Source #

_SourceStrict :: Prism' SourceStrictness () Source #

DecidedStrictness Prisms

_DecidedLazy :: Prism' DecidedStrictness () Source #

_DecidedStrict :: Prism' DecidedStrictness () Source #

_DecidedUnpack :: Prism' DecidedStrictness () Source #

Foreign Prisms

_ImportF :: Prism' Foreign (Callconv, Safety, String, Name, Type) Source #

_ExportF :: Prism' Foreign (Callconv, String, Name, Type) Source #

Callconv Prisms

_CCall :: Prism' Callconv () Source #

_StdCall :: Prism' Callconv () Source #

_CApi :: Prism' Callconv () Source #

_Prim :: Prism' Callconv () Source #

_JavaScript :: Prism' Callconv () Source #

Safety Prisms

_Unsafe :: Prism' Safety () Source #

_Safe :: Prism' Safety () Source #

Pragma Prisms

_InlineP :: Prism' Pragma (Name, Inline, RuleMatch, Phases) Source #

_InlineP :: Prism' Pragma (Name, Inline, RuleMatch, Phases) -- template-haskell-2.8+
_InlineP :: Prism' Pragma (Name, Inline)                    -- Earlier versions

_SpecialiseP :: Prism' Pragma (Name, Type, Maybe Inline, Phases) Source #

_SpecialiseP :: Prism' Pragma (Name, Type, Maybe Inline, Phases) -- template-haskell-2.8+
_SpecialiseP :: Prism' Pragma (Name, Type, Maybe InlineSpec)     -- Earlier versions

_RuleP :: Prism' Pragma (String, Maybe [TyVarBndr], [RuleBndr], Exp, Exp, Phases) Source #

_RuleP :: Prism' Pragma (String, Maybe [TyVarBndr], [RuleBndr], Exp, Exp, Phases) -- template-haskell-2.15+
_RuleP :: Prism' Pragma (String,                    [RuleBndr], Exp, Exp, Phases) -- Earlier versions

_AnnP :: Prism' Pragma (AnnTarget, Exp) Source #

_LineP :: Prism' Pragma (Int, String) Source #

_CompleteP :: Prism' Pragma ([Name], Maybe Name) Source #

Inline Prisms

_NoInline :: Prism' Inline () Source #

_Inline :: Prism' Inline () Source #

_Inlinable :: Prism' Inline () Source #

RuleMatch Prisms

_ConLike :: Prism' RuleMatch () Source #

_FunLike :: Prism' RuleMatch () Source #

Phases Prisms

_AllPhases :: Prism' Phases () Source #

_FromPhase :: Prism' Phases Int Source #

_BeforePhase :: Prism' Phases Int Source #

RuleBndr Prisms

_RuleVar :: Prism' RuleBndr Name Source #

_TypedRuleVar :: Prism' RuleBndr (Name, Type) Source #

AnnTarget Prisms

_TypeAnnotation :: Prism' AnnTarget Name Source #

_ValueAnnotation :: Prism' AnnTarget Name Source #

FunDep Prisms TODO make a lens

_FunDep :: Iso' FunDep ([Name], [Name]) Source #

FixityDirection Prisms

_InfixL :: Prism' FixityDirection () Source #

_InfixR :: Prism' FixityDirection () Source #

_InfixN :: Prism' FixityDirection () Source #

Exp Prisms

_VarE :: Prism' Exp Name Source #

_ConE :: Prism' Exp Name Source #

_LitE :: Prism' Exp Lit Source #

_AppE :: Prism' Exp (Exp, Exp) Source #

_AppTypeE :: Prism' Exp (Exp, Type) Source #

_InfixE :: Prism' Exp (Maybe Exp, Exp, Maybe Exp) Source #

_UInfixE :: Prism' Exp (Exp, Exp, Exp) Source #

_ParensE :: Prism' Exp Exp Source #

_LamE :: Prism' Exp ([Pat], Exp) Source #

_LamCaseE :: Prism' Exp [Match] Source #

_TupE :: Prism' Exp [Maybe Exp] Source #

_TupE :: Prism' Exp [Maybe Exp] -- template-haskell-2.16+
_TupE :: Prism' Exp [Exp]       -- Earlier versions

_UnboxedTupE :: Prism' Exp [Maybe Exp] Source #

_UnboxedTupE :: Prism' Exp [Maybe Exp] -- template-haskell-2.16+
_UnboxedTupE :: Prism' Exp [Exp]       -- Earlier versions

_UnboxedSumE :: Prism' Exp (Exp, SumAlt, SumArity) Source #

_CondE :: Prism' Exp (Exp, Exp, Exp) Source #

_MultiIfE :: Prism' Exp [(Guard, Exp)] Source #

_LetE :: Prism' Exp ([Dec], Exp) Source #

_CaseE :: Prism' Exp (Exp, [Match]) Source #

_DoE :: Prism' Exp [Stmt] Source #

_CompE :: Prism' Exp [Stmt] Source #

_ArithSeqE :: Prism' Exp Range Source #

_ListE :: Prism' Exp [Exp] Source #

_SigE :: Prism' Exp (Exp, Type) Source #

_RecConE :: Prism' Exp (Name, [FieldExp]) Source #

_RecUpdE :: Prism' Exp (Exp, [FieldExp]) Source #

_StaticE :: Prism' Exp Exp Source #

_LabelE :: Prism' Exp String Source #

_MDoE :: Prism' Exp [Stmt] Source #

Body Prisms

_GuardedB :: Prism' Body [(Guard, Exp)] Source #

_NormalB :: Prism' Body Exp Source #

Guard Prisms

_NormalG :: Prism' Guard Exp Source #

_PatG :: Prism' Guard [Stmt] Source #

Stmt Prisms

_BindS :: Prism' Stmt (Pat, Exp) Source #

_LetS :: Prism' Stmt [Dec] Source #

_NoBindS :: Prism' Stmt Exp Source #

_ParS :: Prism' Stmt [[Stmt]] Source #

_RecS :: Prism' Stmt [Stmt] Source #

Range Prisms

_FromR :: Prism' Range Exp Source #

_FromThenR :: Prism' Range (Exp, Exp) Source #

_FromToR :: Prism' Range (Exp, Exp) Source #

_FromThenToR :: Prism' Range (Exp, Exp, Exp) Source #

Lit Prisms

_CharL :: Prism' Lit Char Source #

_StringL :: Prism' Lit String Source #

_IntegerL :: Prism' Lit Integer Source #

_RationalL :: Prism' Lit Rational Source #

_IntPrimL :: Prism' Lit Integer Source #

_WordPrimL :: Prism' Lit Integer Source #

_FloatPrimL :: Prism' Lit Rational Source #

_DoublePrimL :: Prism' Lit Rational Source #

_StringPrimL :: Prism' Lit [Word8] Source #

_BytesPrimL :: Prism' Lit Bytes Source #

Pat Prisms

_LitP :: Prism' Pat Lit Source #

_VarP :: Prism' Pat Name Source #

_TupP :: Prism' Pat [Pat] Source #

_UnboxedSumP :: Prism' Pat (Pat, SumAlt, SumArity) Source #

_ConP :: Prism' Pat (Name, [Pat]) Source #

_InfixP :: Prism' Pat (Pat, Name, Pat) Source #

_UInfixP :: Prism' Pat (Pat, Name, Pat) Source #

_ParensP :: Prism' Pat Pat Source #

_TildeP :: Prism' Pat Pat Source #

_BangP :: Prism' Pat Pat Source #

_AsP :: Prism' Pat (Name, Pat) Source #

_WildP :: Prism' Pat () Source #

_RecP :: Prism' Pat (Name, [FieldPat]) Source #

_ListP :: Prism' Pat [Pat] Source #

_SigP :: Prism' Pat (Pat, Type) Source #

_ViewP :: Prism' Pat (Exp, Pat) Source #

Type Prisms

_ForallT :: Prism' Type ([TyVarBndr], Cxt, Type) Source #

_AppT :: Prism' Type (Type, Type) Source #

_SigT :: Prism' Type (Type, Kind) Source #

_VarT :: Prism' Type Name Source #

_ConT :: Prism' Type Name Source #

_PromotedT :: Prism' Type Name Source #

_TupleT :: Prism' Type Int Source #

_UnboxedSumT :: Prism' Type SumArity Source #

_ArrowT :: Prism' Type () Source #

_ListT :: Prism' Type () Source #

_StarT :: Prism' Type () Source #

_LitT :: Prism' Type TyLit Source #

_InfixT :: Prism' Type (Type, Name, Type) Source #

_UInfixT :: Prism' Type (Type, Name, Type) Source #

_ParensT :: Prism' Type Type Source #

_AppKindT :: Prism' Type (Type, Kind) Source #

_ImplicitParamT :: Prism' Type (String, Type) Source #

_ForallVisT :: Prism' Type ([TyVarBndr], Type) Source #

TyVarBndr Prisms

_PlainTV :: Prism' TyVarBndr Name Source #

_KindedTV :: Prism' TyVarBndr (Name, Kind) Source #

FamilyResultSig Prisms

_NoSig :: Prism' FamilyResultSig () Source #

_KindSig :: Prism' FamilyResultSig Kind Source #

_TyVarSig :: Prism' FamilyResultSig TyVarBndr Source #

TyLit Prisms

_NumTyLit :: Prism' TyLit Integer Source #

_StrTyLit :: Prism' TyLit String Source #

Role Prisms

_InferR :: Prism' Role () Source #

DerivStrategy Prisms

_StockStrategy :: Prism' DerivStrategy () Source #

_AnyclassStrategy :: Prism' DerivStrategy () Source #

_NewtypeStrategy :: Prism' DerivStrategy () Source #