roles-0.2.0.0: Composable class-based roles

Safe HaskellNone
LanguageHaskell98

Data.Roles

Documentation

class Representational t where Source #

Methods

rep :: Coercion a b -> Coercion (t a) (t b) Source #

An argument is representational if you can lift a coercion of the argument into one of the whole

rep :: Phantom t => Coercion a b -> Coercion (t a) (t b) Source #

An argument is representational if you can lift a coercion of the argument into one of the whole

Instances

Representational * k1 (Proxy k1) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (Proxy k1) (t a) (t b) Source #

Representational * k1 (Coercion k1 a) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (Coercion k1 a) (t a) (t b) Source #

Representational * k1 (Const k1 a) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (Const k1 a) (t a) (t b) Source #

Representational * * [] Source # 

Methods

rep :: Coercion k1 a b -> Coercion [] (t a) (t b) Source #

Representational * * Maybe Source # 

Methods

rep :: Coercion k1 a b -> Coercion Maybe (t a) (t b) Source #

Representational * * IO Source # 

Methods

rep :: Coercion k1 a b -> Coercion IO (t a) (t b) Source #

Representational * * Complex Source # 

Methods

rep :: Coercion k1 a b -> Coercion Complex (t a) (t b) Source #

Representational * * Dual Source # 

Methods

rep :: Coercion k1 a b -> Coercion Dual (t a) (t b) Source #

Representational * * Endo Source # 

Methods

rep :: Coercion k1 a b -> Coercion Endo (t a) (t b) Source #

Representational * * Sum Source # 

Methods

rep :: Coercion k1 a b -> Coercion Sum (t a) (t b) Source #

Representational * * Product Source # 

Methods

rep :: Coercion k1 a b -> Coercion Product (t a) (t b) Source #

Representational * * First Source # 

Methods

rep :: Coercion k1 a b -> Coercion First (t a) (t b) Source #

Representational * * Last Source # 

Methods

rep :: Coercion k1 a b -> Coercion Last (t a) (t b) Source #

Representational * * IntMap Source # 

Methods

rep :: Coercion k1 a b -> Coercion IntMap (t a) (t b) Source #

Representational * * ((->) a) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((->) a) (t a) (t b) Source #

Representational * * (Either a) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (Either a) (t a) (t b) Source #

Representational * * ((,) a) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,) a) (t a) (t b) Source #

Representational * * (ST s) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (ST s) (t a) (t b) Source #

Representational * * (Map k) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (Map k) (t a) (t b) Source #

Representational * * ((,,) a b) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,) a b) (t a) (t b) Source #

Representational * * ((,,,) a b c) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,) a b c) (t a) (t b) Source #

Representational * * ((,,,,) a b c d) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,,) a b c d) (t a) (t b) Source #

Representational * * ((,,,,,) a b c d e) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,,,) a b c d e) (t a) (t b) Source #

Representational (k1 -> *) k1 (Coercion k1) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (Coercion k1) (t a) (t b) Source #

Representational (* -> * -> * -> * -> * -> *) * (,,,,,) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (,,,,,) (t a) (t b) Source #

Representational (* -> * -> * -> * -> *) * (,,,,) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (,,,,) (t a) (t b) Source #

Representational (* -> * -> * -> *) * (,,,) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (,,,) (t a) (t b) Source #

Representational (* -> * -> *) * (,,) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (,,) (t a) (t b) Source #

Representational (* -> *) * (->) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (->) (t a) (t b) Source #

Representational (* -> *) * Either Source # 

Methods

rep :: Coercion k1 a b -> Coercion Either (t a) (t b) Source #

Representational (* -> *) * (,) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (,) (t a) (t b) Source #

Representational (* -> * -> * -> * -> *) * ((,,,,,) a) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,,,) a) (t a) (t b) Source #

Representational (* -> * -> * -> *) * ((,,,,) a) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,,) a) (t a) (t b) Source #

Representational (* -> * -> *) * ((,,,) a) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,) a) (t a) (t b) Source #

Representational (* -> *) * ((,,) a) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,) a) (t a) (t b) Source #

Representational (k -> *) * (Const k) Source # 

Methods

rep :: Coercion k1 a b -> Coercion (Const k) (t a) (t b) Source #

Representational (* -> * -> * -> *) * ((,,,,,) a b) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,,,) a b) (t a) (t b) Source #

Representational (* -> * -> *) * ((,,,,) a b) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,,) a b) (t a) (t b) Source #

Representational (* -> *) * ((,,,) a b) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,) a b) (t a) (t b) Source #

Representational (* -> * -> *) * ((,,,,,) a b c) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,,,) a b c) (t a) (t b) Source #

Representational (* -> *) * ((,,,,) a b c) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,,) a b c) (t a) (t b) Source #

Representational (* -> *) * ((,,,,,) a b c d) Source # 

Methods

rep :: Coercion k1 a b -> Coercion ((,,,,,) a b c d) (t a) (t b) Source #

class Representational t => Phantom t where Source #

Methods

phantom :: Coercion (t a) (t b) Source #

An argument is phantom if you can coerce the whole ignoring the argument

phantom :: Coercible (t a) (t b) => Coercion (t a) (t b) Source #

An argument is phantom if you can coerce the whole ignoring the argument

Instances

Phantom * k1 (Proxy k1) Source # 

Methods

phantom :: Coercion (Proxy k1) (t a) (t b) Source #

Phantom * k1 (Const k1 a) Source # 

Methods

phantom :: Coercion (Const k1 a) (t a) (t b) Source #