Safe Haskell | Safe-Inferred |
---|---|

Language | GHC2021 |

Type definitions

# Documentation

A data type representing kinds.

#### Instances

Data Kind Source # | |

Defined in Language.Giml.Syntax.Types 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.

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 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 # | |