coercion-extras-0.1.0.0: Extra utilities for manipulating nominal and representational coercions

Safe HaskellNone
LanguageHaskell2010

Data.Type.Role.Nominal

Synopsis

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

Defined in Data.Type.Role.Nominal

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

A datatype witness of the nominal type role.

Constructors

Nominality :: Nominal f => Nominality f 

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

Saturate a coercion of a nominal datatype.