Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Language.Giml.Syntax.Types
Description
Type definitions
Documentation
A data type representing kinds.
Instances
Data Kind Source # | |
Defined in Language.Giml.Syntax.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Kind -> c Kind # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Kind # dataTypeOf :: Kind -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Kind) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Kind) # gmapT :: (forall b. Data b => b -> b) -> Kind -> Kind # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Kind -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Kind -> r # gmapQ :: (forall d. Data d => d -> u) -> Kind -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Kind -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Kind -> m Kind # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Kind -> m Kind # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Kind -> m Kind # | |
Show Kind Source # | |
Eq Kind Source # | |
Ord Kind Source # | |
A data type representing types.
Constructors
TypeVar TypeVar | type variables, like |
TypeCon TypeCon | type constructors, like |
TypeApp Type Type | type application, like |
TypeRec [(Label, Type)] | the type of a record, like |
TypeRecExt [(Label, Type)] TypeVar | a record with an extension, such as |
TypeVariant [(Constr, Type)] | the type of a closed variant, such as |
TypePolyVariantLB [(Constr, Type)] TypeVar | the type of a lower bounded polymorphic variant, such as |
TypePolyVariantUB TypeVar [(Constr, Type)] | the type of a upper bounded polymorphic variant, such as The type variable here is special and is used to track the information of which variants we already know of during the type inference process. |
TypeScheme [TypeVar] Type | A generalized type which closes over all of its type variables,
such as |
Instances
Data Type Source # | |
Defined in Language.Giml.Syntax.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Type -> c Type # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Type # dataTypeOf :: Type -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Type) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Type) # gmapT :: (forall b. Data b => b -> b) -> Type -> Type # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r # gmapQ :: (forall d. Data d => d -> u) -> Type -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Type -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Type -> m Type # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type # | |
Show Type Source # | |
Eq Type Source # | |
Ord Type Source # | |