Safe Haskell | None |
---|---|
Language | Haskell2010 |
UPattern matching on type-level AST fragments for refactorings.
- pattern ForallType :: forall dom. TyVarList dom -> Type dom -> Type dom
- pattern CtxType :: forall dom. Context dom -> Type dom -> Type dom
- pattern FunctionType :: forall dom. Type dom -> Type dom -> Type dom
- pattern TupleType :: forall dom. TypeList dom -> Type dom
- pattern UnboxedTupleType :: forall dom. TypeList dom -> Type dom
- pattern ListType :: forall dom. Type dom -> Type dom
- pattern ParArrayType :: forall dom. Type dom -> Type dom
- pattern TypeApp :: forall dom. Type dom -> Type dom -> Type dom
- pattern InfixTypeApp :: forall dom. Type dom -> Operator dom -> Type dom -> Type dom
- pattern ParenType :: forall dom. Type dom -> Type dom
- pattern VarType :: forall dom. Name dom -> Type dom
- pattern KindedType :: forall dom. Type dom -> Kind dom -> Type dom
- pattern BangType :: forall dom. Type dom -> Type dom
- pattern LazyType :: forall dom. Type dom -> Type dom
- pattern UnpackType :: forall dom. Type dom -> Type dom
- pattern NoUnpackType :: forall dom. Type dom -> Type dom
- pattern WildcardType :: forall dom. Type dom
- pattern NamedWildcardType :: forall dom. Name dom -> Type dom
- pattern SpliceType :: forall dom. Splice dom -> Type dom
- pattern QuasiQuoteType :: forall dom. QuasiQuote dom -> Type dom
- pattern PromotedIntType :: forall dom. Integer -> Type dom
- pattern PromotedStringType :: forall dom. String -> Type dom
- pattern PromotedConType :: forall dom. Name dom -> Type dom
- pattern PromotedListType :: forall dom. TypeList dom -> Type dom
- pattern PromotedTupleType :: forall dom. TypeList dom -> Type dom
- pattern PromotedUnitType :: forall dom. Type dom
- pattern TyVarDecl :: forall dom. Name dom -> TyVar dom
- pattern KindedTyVarDecl :: forall dom. Name dom -> Kind dom -> TyVar dom
- pattern ContextOne :: forall dom. Assertion dom -> Context dom
- pattern ContextMulti :: forall dom. AssertionList dom -> Context dom
- pattern ClassAssert :: forall dom. Name dom -> TypeList dom -> Assertion dom
- pattern InfixAssert :: forall dom. Type dom -> Operator dom -> Type dom -> Assertion dom
- pattern ImplicitAssert :: forall dom. Name dom -> Type dom -> Assertion dom
Types
pattern ForallType :: forall dom. TyVarList dom -> Type dom -> Type dom Source #
Forall types ( forall x y . type
)
pattern CtxType :: forall dom. Context dom -> Type dom -> Type dom Source #
Type with a context ( forall x y . type
)
pattern FunctionType :: forall dom. Type dom -> Type dom -> Type dom Source #
Function types ( a -> b
)
pattern UnboxedTupleType :: forall dom. TypeList dom -> Type dom Source #
Unboxed tuple types ( (#a,b#)
)
pattern ParArrayType :: forall dom. Type dom -> Type dom Source #
Parallel array type ( [:a:]
)
pattern InfixTypeApp :: forall dom. Type dom -> Operator dom -> Type dom -> Type dom Source #
Infix type constructor ( (a <: b)
)
pattern ParenType :: forall dom. Type dom -> Type dom Source #
Type surrounded by parentheses ( (T a)
)
pattern KindedType :: forall dom. Type dom -> Kind dom -> Type dom Source #
Type with explicit kind signature ( a :: *
)
pattern LazyType :: forall dom. Type dom -> Type dom Source #
Lazy type marked with ~
. (Should only be used if Strict
or StrictData
language extension is used)
pattern UnpackType :: forall dom. Type dom -> Type dom Source #
Strict type marked with UNPACK pragma. (Usually contains the bang mark.)
pattern NoUnpackType :: forall dom. Type dom -> Type dom Source #
Strict type marked with NOUNPACK pragma. (Usually contains the bang mark.)
pattern WildcardType :: forall dom. Type dom Source #
A wildcard type ( _
) with -XPartialTypeSignatures
pattern NamedWildcardType :: forall dom. Name dom -> Type dom Source #
A named wildcard type ( _t
) with -XPartialTypeSignatures
pattern SpliceType :: forall dom. Splice dom -> Type dom Source #
A Template Haskell splice type ( $(genType)
).
pattern QuasiQuoteType :: forall dom. QuasiQuote dom -> Type dom Source #
A Template Haskell splice type ( $(genType)
).
pattern PromotedIntType :: forall dom. Integer -> Type dom Source #
Numeric value promoted to the type level.
pattern PromotedStringType :: forall dom. String -> Type dom Source #
String value promoted to the type level.
pattern PromotedConType :: forall dom. Name dom -> Type dom Source #
A data constructor value promoted to the type level.
pattern PromotedListType :: forall dom. TypeList dom -> Type dom Source #
A list of elements as a type.
pattern PromotedTupleType :: forall dom. TypeList dom -> Type dom Source #
A tuple of elements as a type.
pattern PromotedUnitType :: forall dom. Type dom Source #
Kind of the unit value ()
.
Type variable
pattern KindedTyVarDecl :: forall dom. Name dom -> Kind dom -> TyVar dom Source #
Kinded type variable declaration ( v :: *
)
Contexts
pattern ContextOne :: forall dom. Assertion dom -> Context dom Source #
One assertion ( C a => ...
)
pattern ContextMulti :: forall dom. AssertionList dom -> Context dom Source #
A set of assertions ( (C1 a, C2 b) => ...
, but can be one: (C a) => ...
)
Assertions
pattern ClassAssert :: forall dom. Name dom -> TypeList dom -> Assertion dom Source #
Class assertion (Cls x
)