| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Language.Haskell.Tools.AST.Types
Description
Representation of Haskell types
- data TyVar dom stage = TyVarDecl {
- _tyVarName :: Ann Name dom stage
- _tyVarKind :: AnnMaybe KindConstraint dom stage
- data Type dom stage
- = TyForall { }
- | TyCtx { }
- | TyFun {
- _typeParam :: Ann Type dom stage
- _typeResult :: Ann Type dom stage
- | TyTuple {
- _typeElements :: AnnList Type dom stage
- | TyUnbTuple {
- _typeElements :: AnnList Type dom stage
- | TyList {
- _typeElement :: Ann Type dom stage
- | TyParArray {
- _typeElement :: Ann Type dom stage
- | TyApp { }
- | TyVar { }
- | TyParen {
- _typeInner :: Ann Type dom stage
- | TyInfix {
- _typeLeft :: Ann Type dom stage
- _typeOperator :: Ann Operator dom stage
- _typeRight :: Ann Type dom stage
- | TyKinded { }
- | TyPromoted {
- _tpPromoted :: Ann (Promoted Type) dom stage
- | TySplice { }
- | TyQuasiQuote {
- _typeQQ :: QuasiQuote dom stage
- | TyBang {
- _typeInner :: Ann Type dom stage
- | TyLazy {
- _typeInner :: Ann Type dom stage
- | TyUnpack {
- _typeInner :: Ann Type dom stage
- | TyNoUnpack {
- _typeInner :: Ann Type dom stage
- | TyWildcard
- | TyNamedWildc {
- _typeWildcardName :: Ann Name dom stage
- data Context dom stage
- = ContextOne {
- _contextAssertion :: Ann Assertion dom stage
- | ContextMulti {
- _contextAssertions :: AnnList Assertion dom stage
- = ContextOne {
- data Assertion dom stage
- = ClassAssert {
- _assertClsName :: Ann Name dom stage
- _assertTypes :: AnnList Type dom stage
- | InfixAssert {
- _assertLhs :: Ann Type dom stage
- _assertOp :: Ann Operator dom stage
- _assertRhs :: Ann Type dom stage
- | ImplicitAssert {
- _assertImplVar :: Ann Name dom stage
- _assertImplType :: Ann Type dom stage
- = ClassAssert {
Documentation
Type variable declaration
Constructors
| TyVarDecl | |
Fields
| |
Haskell types
Constructors
| TyForall | Forall types ( |
| TyCtx | Type with a context ( |
| TyFun | Function types ( |
Fields
| |
| TyTuple | Tuple types ( |
Fields
| |
| TyUnbTuple | |
Fields
| |
| TyList | List type with special syntax ( |
Fields
| |
| TyParArray | Parallel array type ( |
Fields
| |
| TyApp | Type application ( |
| TyVar | type variable or constructor ( |
| TyParen | type surrounded by parentheses ( |
Fields
| |
| TyInfix | Infix type constructor ( |
Fields
| |
| TyKinded | Type with explicit kind signature ( |
| TyPromoted | |
Fields
| |
| TySplice | a Template Haskell splice type ( |
| TyQuasiQuote | a Template Haskell quasi-quote type ( |
Fields
| |
| TyBang | Strict type marked with |
Fields
| |
| TyLazy | Lazy type marked with |
Fields
| |
| TyUnpack | Strict type marked with UNPACK pragma. (Usually contains the bang mark.) |
Fields
| |
| TyNoUnpack | Strict type marked with NOUNPACK pragma. (Usually contains the bang mark.) |
Fields
| |
| TyWildcard | A wildcard type ( |
| TyNamedWildc | A named wildcard type ( |
Fields
| |
data Context dom stage Source #
Constructors
| ContextOne | One assertion ( |
Fields
| |
| ContextMulti | A set of assertions ( |
Fields
| |
data Assertion dom stage Source #
A single assertion in the context
Constructors
| ClassAssert | Class assertion ( |
Fields
| |
| InfixAssert | Infix class assertion, also contains type equations ( |
Fields
| |
| ImplicitAssert | Assertion for implicit parameter binding ( |
Fields
| |