Safe Haskell | None |
---|---|
Language | Haskell2010 |
ConLike
- data ConLike
- conLikeArity :: ConLike -> Arity
- conLikeFieldLabels :: ConLike -> [FieldLabel]
- conLikeInstOrigArgTys :: ConLike -> [Type] -> [Type]
- conLikeExTyVars :: ConLike -> [TyVar]
- conLikeName :: ConLike -> Name
- conLikeStupidTheta :: ConLike -> ThetaType
- conLikeWrapId_maybe :: ConLike -> Maybe Id
- conLikeImplBangs :: ConLike -> [HsImplBang]
- conLikeFullSig :: ConLike -> ([TyVar], [TyVar], [EqSpec], ThetaType, ThetaType, [Type], Type)
- conLikeResTy :: ConLike -> [Type] -> Type
- conLikeFieldType :: ConLike -> FieldLabelString -> Type
- conLikesWithFields :: [ConLike] -> [FieldLabelString] -> [ConLike]
Documentation
conLikeArity :: ConLike -> Arity
Number of arguments
conLikeFieldLabels :: ConLike -> [FieldLabel]
Names of fields used for selectors
conLikeInstOrigArgTys :: ConLike -> [Type] -> [Type]
Returns just the instantiated value argument types of a ConLike
,
(excluding dictionary args)
conLikeExTyVars :: ConLike -> [TyVar]
Existentially quantified type variables
conLikeName :: ConLike -> Name
conLikeWrapId_maybe :: ConLike -> Maybe Id
Returns the Id
of the wrapper. This is also known as the builder in
some contexts. The value is Nothing only in the case of unidirectional
pattern synonyms.
conLikeImplBangs :: ConLike -> [HsImplBang]
Returns the strictness information for each constructor
conLikeFullSig :: ConLike -> ([TyVar], [TyVar], [EqSpec], ThetaType, ThetaType, [Type], Type)
The "full signature" of the ConLike
returns, in order:
1) The universally quanitifed type variables
2) The existentially quantified type variables
3) The equality specification
4) The provided theta (the constraints provided by a match)
5) The required theta (the constraints required for a match)
6) The original argument types (i.e. before any change of the representation of the type)
7) The original result type
conLikeResTy :: ConLike -> [Type] -> Type
Returns the type of the whole pattern
conLikeFieldType :: ConLike -> FieldLabelString -> Type
Extract the type for any given labelled field of the ConLike
conLikesWithFields :: [ConLike] -> [FieldLabelString] -> [ConLike]
The ConLikes that have *all* the given fields