domain-core-0.1: Low-level API of "domain"
Safe HaskellNone
LanguageHaskell2010

DomainCore.Model

Description

High-level model of schema.

Synopsis

Documentation

data TypeDec Source #

Declaration of a type.

Constructors

TypeDec Text TypeDef

Name of the type and its definition.

Instances

Instances details
Eq TypeDec Source # 
Instance details

Defined in DomainCore.Model

Methods

(==) :: TypeDec -> TypeDec -> Bool #

(/=) :: TypeDec -> TypeDec -> Bool #

Ord TypeDec Source # 
Instance details

Defined in DomainCore.Model

Show TypeDec Source # 
Instance details

Defined in DomainCore.Model

Generic TypeDec Source # 
Instance details

Defined in DomainCore.Model

Associated Types

type Rep TypeDec :: Type -> Type #

Methods

from :: TypeDec -> Rep TypeDec x #

to :: Rep TypeDec x -> TypeDec #

Lift TypeDec Source # 
Instance details

Defined in DomainCore.Model

Methods

lift :: TypeDec -> Q Exp #

liftTyped :: TypeDec -> Q (TExp TypeDec) #

type Rep TypeDec Source # 
Instance details

Defined in DomainCore.Model

type Rep TypeDec = D1 ('MetaData "TypeDec" "DomainCore.Model" "domain-core-0.1-9hImdesqj2tLVeI0U2nTxw" 'False) (C1 ('MetaCons "TypeDec" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 TypeDef)))

data TypeDef Source #

Definition of a type.

Constructors

SumTypeDef [(Text, [Type])]

Sum. A list of pairs of names of its members (which will be mapped to constructors) and types which will populate the according constructors.

ProductTypeDef [(Text, Type)]

Product. Think of it as a record. Carries a list of associations of field names with types.

Instances

Instances details
Eq TypeDef Source # 
Instance details

Defined in DomainCore.Model

Methods

(==) :: TypeDef -> TypeDef -> Bool #

(/=) :: TypeDef -> TypeDef -> Bool #

Ord TypeDef Source # 
Instance details

Defined in DomainCore.Model

Show TypeDef Source # 
Instance details

Defined in DomainCore.Model

Generic TypeDef Source # 
Instance details

Defined in DomainCore.Model

Associated Types

type Rep TypeDef :: Type -> Type #

Methods

from :: TypeDef -> Rep TypeDef x #

to :: Rep TypeDef x -> TypeDef #

Lift TypeDef Source # 
Instance details

Defined in DomainCore.Model

Methods

lift :: TypeDef -> Q Exp #

liftTyped :: TypeDef -> Q (TExp TypeDef) #

type Rep TypeDef Source # 
Instance details

Defined in DomainCore.Model

type Rep TypeDef = D1 ('MetaData "TypeDef" "DomainCore.Model" "domain-core-0.1-9hImdesqj2tLVeI0U2nTxw" 'False) (C1 ('MetaCons "SumTypeDef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [(Text, [Type])])) :+: C1 ('MetaCons "ProductTypeDef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 [(Text, Type)])))

data Type Source #

Type.

Constructors

TupleType [Type]

Fully applied tuple of the listed types.

AppType (NonEmpty Type)

List of type applications.

ListType Type

List type with the type of its element.

RefType Text

Possibly qualified reference to another type.

Instances

Instances details
Eq Type Source # 
Instance details

Defined in DomainCore.Model

Methods

(==) :: Type -> Type -> Bool #

(/=) :: Type -> Type -> Bool #

Ord Type Source # 
Instance details

Defined in DomainCore.Model

Methods

compare :: Type -> Type -> Ordering #

(<) :: Type -> Type -> Bool #

(<=) :: Type -> Type -> Bool #

(>) :: Type -> Type -> Bool #

(>=) :: Type -> Type -> Bool #

max :: Type -> Type -> Type #

min :: Type -> Type -> Type #

Show Type Source # 
Instance details

Defined in DomainCore.Model

Methods

showsPrec :: Int -> Type -> ShowS #

show :: Type -> String #

showList :: [Type] -> ShowS #

Generic Type Source # 
Instance details

Defined in DomainCore.Model

Associated Types

type Rep Type :: Type -> Type #

Methods

from :: Type -> Rep Type x #

to :: Rep Type x -> Type #

Lift Type Source # 
Instance details

Defined in DomainCore.Model

Methods

lift :: Type -> Q Exp #

liftTyped :: Type -> Q (TExp Type) #

type Rep Type Source # 
Instance details

Defined in DomainCore.Model