Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Elm.TyRep
Description
This module defines how the derived Haskell data types are represented. - It is useful for writing type conversion rules.
Synopsis
- data ETypeDef
- data EType
- newtype ETCon = ETCon {}
- newtype ETVar = ETVar {}
- data ETypeName = ETypeName {}
- data EPrimAlias = EPrimAlias {}
- data EAlias = EAlias {
- ea_name :: ETypeName
- ea_fields :: [(String, EType)]
- ea_omit_null :: Bool
- ea_newtype :: Bool
- ea_unwrap_unary :: Bool
- data SumTypeFields
- isNamed :: SumTypeFields -> Bool
- isEmpty :: SumTypeFields -> Bool
- data SumTypeConstructor = STC {}
- data ESum = ESum {}
- unpackTupleType :: EType -> [EType]
- unpackToplevelConstr :: EType -> [EType]
- class IsElmDefinition a where
- compileElmDef :: Proxy a -> ETypeDef
- newtype SumEncoding' = SumEncoding' SumEncoding
- defSumEncoding :: SumEncoding'
- toElmType :: Typeable a => Proxy a -> EType
Documentation
Type definition, including constructors.
Constructors
ETypeAlias EAlias | |
ETypePrimAlias EPrimAlias | |
ETypeSum ESum |
Type construction : type variables, type constructors, tuples and type application.
Type constructor:
ETCon "Int"
Type variable:
ETVar "a"
Type name:
ETypeName "Map" [ETVar "k", ETVar "v"]
Instances
Show ETypeName Source # | |
ElmRenderable ETypeName Source # | |
Eq ETypeName Source # | |
Ord ETypeName Source # | |
Defined in Elm.TyRep |
data EPrimAlias Source #
Constructors
EPrimAlias | |
Instances
Show EPrimAlias Source # | |
ElmRenderable EPrimAlias Source # | |
Defined in Elm.TyRender Methods renderElm :: EPrimAlias -> String Source # | |
Eq EPrimAlias Source # | |
Defined in Elm.TyRep Methods (==) :: EPrimAlias -> EPrimAlias -> Bool Source # (/=) :: EPrimAlias -> EPrimAlias -> Bool Source # | |
Ord EPrimAlias Source # | |
Defined in Elm.TyRep Methods compare :: EPrimAlias -> EPrimAlias -> Ordering Source # (<) :: EPrimAlias -> EPrimAlias -> Bool Source # (<=) :: EPrimAlias -> EPrimAlias -> Bool Source # (>) :: EPrimAlias -> EPrimAlias -> Bool Source # (>=) :: EPrimAlias -> EPrimAlias -> Bool Source # max :: EPrimAlias -> EPrimAlias -> EPrimAlias Source # min :: EPrimAlias -> EPrimAlias -> EPrimAlias Source # |
Constructors
EAlias | |
Fields
|
Instances
Show EAlias Source # | |
ElmRenderable EAlias Source # | |
Eq EAlias Source # | |
Ord EAlias Source # | |
data SumTypeFields Source #
Instances
Show SumTypeFields Source # | |
Eq SumTypeFields Source # | |
Defined in Elm.TyRep Methods (==) :: SumTypeFields -> SumTypeFields -> Bool Source # (/=) :: SumTypeFields -> SumTypeFields -> Bool Source # | |
Ord SumTypeFields Source # | |
Defined in Elm.TyRep Methods compare :: SumTypeFields -> SumTypeFields -> Ordering Source # (<) :: SumTypeFields -> SumTypeFields -> Bool Source # (<=) :: SumTypeFields -> SumTypeFields -> Bool Source # (>) :: SumTypeFields -> SumTypeFields -> Bool Source # (>=) :: SumTypeFields -> SumTypeFields -> Bool Source # max :: SumTypeFields -> SumTypeFields -> SumTypeFields Source # min :: SumTypeFields -> SumTypeFields -> SumTypeFields Source # |
isNamed :: SumTypeFields -> Bool Source #
isEmpty :: SumTypeFields -> Bool Source #
data SumTypeConstructor Source #
Constructors
STC | |
Fields
|
Instances
Show SumTypeConstructor Source # | |
Eq SumTypeConstructor Source # | |
Defined in Elm.TyRep Methods (==) :: SumTypeConstructor -> SumTypeConstructor -> Bool Source # (/=) :: SumTypeConstructor -> SumTypeConstructor -> Bool Source # | |
Ord SumTypeConstructor Source # | |
Defined in Elm.TyRep Methods compare :: SumTypeConstructor -> SumTypeConstructor -> Ordering Source # (<) :: SumTypeConstructor -> SumTypeConstructor -> Bool Source # (<=) :: SumTypeConstructor -> SumTypeConstructor -> Bool Source # (>) :: SumTypeConstructor -> SumTypeConstructor -> Bool Source # (>=) :: SumTypeConstructor -> SumTypeConstructor -> Bool Source # max :: SumTypeConstructor -> SumTypeConstructor -> SumTypeConstructor Source # min :: SumTypeConstructor -> SumTypeConstructor -> SumTypeConstructor Source # |
Constructors
ESum | |
Fields
|
unpackTupleType :: EType -> [EType] Source #
Transforms tuple types in a list of types. Otherwise returns a singleton list with the original type.
unpackToplevelConstr :: EType -> [EType] Source #
class IsElmDefinition a where Source #
Methods
compileElmDef :: Proxy a -> ETypeDef Source #
newtype SumEncoding' Source #
Constructors
SumEncoding' SumEncoding |
Instances
Show SumEncoding' Source # | |
Eq SumEncoding' Source # | |
Defined in Elm.TyRep Methods (==) :: SumEncoding' -> SumEncoding' -> Bool Source # (/=) :: SumEncoding' -> SumEncoding' -> Bool Source # | |
Ord SumEncoding' Source # | |
Defined in Elm.TyRep Methods compare :: SumEncoding' -> SumEncoding' -> Ordering Source # (<) :: SumEncoding' -> SumEncoding' -> Bool Source # (<=) :: SumEncoding' -> SumEncoding' -> Bool Source # (>) :: SumEncoding' -> SumEncoding' -> Bool Source # (>=) :: SumEncoding' -> SumEncoding' -> Bool Source # max :: SumEncoding' -> SumEncoding' -> SumEncoding' Source # min :: SumEncoding' -> SumEncoding' -> SumEncoding' Source # |
toElmType :: Typeable a => Proxy a -> EType Source #
Get an elm-bridge
type representation for a Haskell type.
This can be used to render the type declaration via
ElmRenderable
or the the JSON serializer/parser names via
jsonSerForType
and jsonParserForType
.