| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Language.Haskell.Tools.AST.Match.Types
Description
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 Context :: forall dom. Assertion 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
- pattern TupleAssert :: forall dom. [Assertion 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 Context :: forall dom. Assertion dom -> Context dom Source #
A context of assertions ( C a => ... )
Assertions
pattern ClassAssert :: forall dom. Name dom -> TypeList dom -> Assertion dom Source #
Class assertion (Cls x)
pattern InfixAssert :: forall dom. Type dom -> Operator dom -> Type dom -> Assertion dom Source #
Infix class assertion, also contains type equations ( a ~ X y )
pattern ImplicitAssert :: forall dom. Name dom -> Type dom -> Assertion dom Source #
Assertion for implicit parameter binding ( ?cmp :: a -> a -> Bool )
pattern TupleAssert :: forall dom. [Assertion dom] -> Assertion dom Source #
A list of assertions ( (Eq a, Show a) )