Safe Haskell | None |
---|---|
Language | Haskell2010 |
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
TyVarDecl | |
|
Haskell types
TyForall | Forall types ( |
TyCtx | Type with a context ( |
TyFun | Function types ( |
| |
TyTuple | Tuple types ( |
| |
TyUnbTuple | |
| |
TyList | List type with special syntax ( |
| |
TyParArray | Parallel array type ( |
| |
TyApp | Type application ( |
TyVar | type variable or constructor ( |
TyParen | type surrounded by parentheses ( |
| |
TyInfix | Infix type constructor ( |
| |
TyKinded | Type with explicit kind signature ( |
TyPromoted | |
| |
TySplice | a Template Haskell splice type ( |
TyQuasiQuote | a Template Haskell quasi-quote type ( |
| |
TyBang | Strict type marked with |
| |
TyLazy | Lazy type marked with |
| |
TyUnpack | Strict type marked with UNPACK pragma. (Usually contains the bang mark.) |
| |
TyNoUnpack | Strict type marked with NOUNPACK pragma. (Usually contains the bang mark.) |
| |
TyWildcard | A wildcard type ( |
TyNamedWildc | A named wildcard type ( |
|
data Context dom stage Source #
ContextOne | One assertion ( |
| |
ContextMulti | A set of assertions ( |
|
data Assertion dom stage Source #
A single assertion in the context
ClassAssert | Class assertion ( |
| |
InfixAssert | Infix class assertion, also contains type equations ( |
| |
ImplicitAssert | Assertion for implicit parameter binding ( |
|