Safe Haskell | None |
---|---|

Language | Haskell2010 |

## Synopsis

- class (forall a b. a ~ b => Coercible (f a) (f b)) => Nominal (f :: k -> l)
- data Nominality (f :: k -> l) where
- Nominality :: Nominal f => Nominality f

- applyNominal :: Coercion f g -> (a :~: b) -> Coercion (f a) (g b)

# Documentation

class (forall a b. a ~ b => Coercible (f a) (f b)) => Nominal (f :: k -> l) Source #

A constraint witnessing that the next argument of the type constructor of
the `f`

type has the nominal type role.

This class is provided only for completeness, everything is automatically an instance of this class.

## Instances

Nominal (f :: k -> l) Source # | |

Defined in Data.Type.Role.Nominal |

data Nominality (f :: k -> l) where Source #

A datatype witness of the nominal type role.

Nominality :: Nominal f => Nominality f |