Safe Haskell | None |
---|---|
Language | Haskell2010 |
UPattern matching on type-level AST fragments for refactorings.
Synopsis
- pattern ForallType :: TyVarList -> Type -> Type
- pattern CtxType :: Context -> Type -> Type
- pattern FunctionType :: Type -> Type -> Type
- pattern TupleType :: TypeList -> Type
- pattern UnboxedTupleType :: TypeList -> Type
- pattern ListType :: Type -> Type
- pattern ParArrayType :: Type -> Type
- pattern TypeApp :: Type -> Type -> Type
- pattern InfixTypeApp :: Type -> Operator -> Type -> Type
- pattern ParenType :: Type -> Type
- pattern VarType :: Name -> Type
- pattern KindedType :: Type -> Kind -> Type
- pattern BangType :: Type -> Type
- pattern LazyType :: Type -> Type
- pattern UnpackType :: Type -> Type
- pattern NoUnpackType :: Type -> Type
- pattern WildcardType :: Type
- pattern NamedWildcardType :: Name -> Type
- pattern SpliceType :: Splice -> Type
- pattern QuasiQuoteType :: QuasiQuote -> Type
- pattern PromotedIntType :: Integer -> Type
- pattern PromotedStringType :: String -> Type
- pattern PromotedConType :: Name -> Type
- pattern PromotedListType :: TypeList -> Type
- pattern PromotedTupleType :: TypeList -> Type
- pattern PromotedUnitType :: Type
- pattern UnboxedSumType :: TypeList -> Type
- pattern TyVarDecl :: Name -> TyVar
- pattern KindedTyVarDecl :: Name -> Kind -> TyVar
- pattern Context :: Assertion -> Context
- pattern ClassAssert :: Name -> TypeList -> Assertion
- pattern InfixAssert :: Type -> Operator -> Type -> Assertion
- pattern ImplicitAssert :: Name -> Type -> Assertion
- pattern TupleAssert :: [Assertion] -> Assertion
Types
pattern UnboxedTupleType :: TypeList -> Type Source #
Unboxed tuple types ( (#a,b#)
)
pattern ParArrayType :: Type -> Type Source #
Parallel array type ( [:a:]
)
pattern InfixTypeApp :: Type -> Operator -> Type -> Type Source #
Infix type constructor ( (a <: b)
)
pattern LazyType :: Type -> Type Source #
Lazy type marked with ~
. (Should only be used if Strict
or StrictData
language extension is used)
pattern UnpackType :: Type -> Type Source #
Strict type marked with UNPACK pragma. (Usually contains the bang mark.)
pattern NoUnpackType :: Type -> Type Source #
Strict type marked with NOUNPACK pragma. (Usually contains the bang mark.)
pattern WildcardType :: Type Source #
A wildcard type ( _
) with -XPartialTypeSignatures
pattern NamedWildcardType :: Name -> Type Source #
A named wildcard type ( _t
) with -XPartialTypeSignatures
pattern SpliceType :: Splice -> Type Source #
A Template Haskell splice type ( $(genType)
).
pattern QuasiQuoteType :: QuasiQuote -> Type Source #
A Template Haskell splice type ( $(genType)
).
pattern PromotedIntType :: Integer -> Type Source #
Numeric value promoted to the type level.
pattern PromotedStringType :: String -> Type Source #
String value promoted to the type level.
pattern PromotedConType :: Name -> Type Source #
A data constructor value promoted to the type level.
pattern PromotedListType :: TypeList -> Type Source #
A list of elements as a type.
pattern PromotedTupleType :: TypeList -> Type Source #
A tuple of elements as a type.
pattern PromotedUnitType :: Type Source #
Kind of the unit value ()
.
pattern UnboxedSumType :: TypeList -> Type Source #
An unboxed sum type.
Type variable
pattern KindedTyVarDecl :: Name -> Kind -> TyVar Source #
Kinded type variable declaration ( v :: *
)
Contexts
Assertions
pattern InfixAssert :: Type -> Operator -> Type -> Assertion Source #
Infix class assertion, also contains type equations ( a ~ X y
)
pattern ImplicitAssert :: Name -> Type -> Assertion Source #
Assertion for implicit parameter binding ( ?cmp :: a -> a -> Bool
)
pattern TupleAssert :: [Assertion] -> Assertion Source #
A list of assertions ( (Eq a, Show a)
)