Safe Haskell | None |
---|---|
Language | Haskell98 |
- data PatSyn
- mkPatSyn :: Name -> Bool -> [Type] -> [TyVar] -> [TyVar] -> ThetaType -> ThetaType -> Type -> Id -> Maybe Id -> PatSyn
- patSynName :: PatSyn -> Name
- patSynArity :: PatSyn -> Arity
- patSynIsInfix :: PatSyn -> Bool
- patSynArgs :: PatSyn -> [Type]
- patSynTyDetails :: PatSyn -> HsPatSynDetails Type
- patSynType :: PatSyn -> Type
- patSynWrapper :: PatSyn -> Maybe Id
- patSynMatcher :: PatSyn -> Id
- patSynExTyVars :: PatSyn -> [TyVar]
- patSynSig :: PatSyn -> ([TyVar], [TyVar], ThetaType, ThetaType, [Type], Type)
- patSynInstArgTys :: PatSyn -> [Type] -> [Type]
- patSynInstResTy :: PatSyn -> [Type] -> Type
- tidyPatSynIds :: (Id -> Id) -> PatSyn -> PatSyn
- patSynIds :: PatSyn -> [Id]
Main data types
A pattern synonym See Note [Pattern synonym representation]
:: Name | |
-> Bool | Is the pattern synonym declared infix? |
-> [Type] | Original arguments |
-> [TyVar] | Universially-quantified type variables |
-> [TyVar] | Existentially-quantified type variables |
-> ThetaType | Wanted dicts |
-> ThetaType | Given dicts |
-> Type | Original result type |
-> Id | Name of matcher |
-> Maybe Id | Name of wrapper |
-> PatSyn |
Build a new pattern synonym
Type deconstruction
patSynName :: PatSyn -> Name Source
patSynArity :: PatSyn -> Arity Source
Arity of the pattern synonym
patSynIsInfix :: PatSyn -> Bool Source
Should the PatSyn
be presented infix?
patSynArgs :: PatSyn -> [Type] Source
patSynType :: PatSyn -> Type Source
patSynWrapper :: PatSyn -> Maybe Id Source
patSynMatcher :: PatSyn -> Id Source
patSynExTyVars :: PatSyn -> [TyVar] Source
patSynInstArgTys :: PatSyn -> [Type] -> [Type] Source
patSynInstResTy :: PatSyn -> [Type] -> Type Source