roles-0.2.0.0: Composable class-based roles

Safe HaskellNone
LanguageHaskell98

Data.Roles

Documentation

class Representational (t :: k1 -> k2) where #

Methods

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

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

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

Instances
Representational (Proxy :: k1 -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (Proxy a) (Proxy b) #

Representational (Coercion a :: k1 -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b -> Coercion (Coercion a a0) (Coercion a b) #

Representational (Const a :: k1 -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b -> Coercion (Const a a0) (Const a b) #

Representational (Coercion :: k1 -> k1 -> *) # 
Instance details

Defined in Data.Roles

Methods

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

Representational [] # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion [a] [b] #

Representational Maybe # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (Maybe a) (Maybe b) #

Representational IO # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (IO a) (IO b) #

Representational Complex # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (Complex a) (Complex b) #

Representational First # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (First a) (First b) #

Representational Last # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (Last a) (Last b) #

Representational Dual # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (Dual a) (Dual b) #

Representational Endo # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (Endo a) (Endo b) #

Representational Sum # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (Sum a) (Sum b) #

Representational Product # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (Product a) (Product b) #

Representational IntMap # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (IntMap a) (IntMap b) #

Representational (Either a :: * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b -> Coercion (Either a a0) (Either a b) #

Representational ((,) a :: * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b -> Coercion (a, a0) (a, b) #

Representational (ST s :: * -> *) # 
Instance details

Defined in Data.Roles

Methods

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

Representational (Map k :: * -> *) # 
Instance details

Defined in Data.Roles

Methods

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

Representational ((,,) a b :: * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b0 -> Coercion (a, b, a0) (a, b, b0) #

Representational ((->) a :: * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b -> Coercion (a -> a0) (a -> b) #

Representational ((,,,) a b c :: * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b0 -> Coercion (a, b, c, a0) (a, b, c, b0) #

Representational ((,,,,) a b c d :: * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b0 -> Coercion (a, b, c, d, a0) (a, b, c, d, b0) #

Representational ((,,,,,) a b c d e :: * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b0 -> Coercion (a, b, c, d, e, a0) (a, b, c, d, e, b0) #

Representational (,,,,,) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion ((,,,,,) a) ((,,,,,) b) #

Representational (,,,,) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion ((,,,,) a) ((,,,,) b) #

Representational (,,,) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion ((,,,) a) ((,,,) b) #

Representational (,,) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion ((,,) a) ((,,) b) #

Representational Either # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (Either a) (Either b) #

Representational (,) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion ((,) a) ((,) b) #

Representational ((,,,,,) a :: * -> * -> * -> * -> * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b -> Coercion ((,,,,,) a a0) ((,,,,,) a b) #

Representational ((,,,,) a :: * -> * -> * -> * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b -> Coercion ((,,,,) a a0) ((,,,,) a b) #

Representational ((,,,) a :: * -> * -> * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b -> Coercion ((,,,) a a0) ((,,,) a b) #

Representational ((,,) a :: * -> * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b -> Coercion ((,,) a a0) ((,,) a b) #

Representational (Const :: * -> k -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a b -> Coercion (Const a) (Const b) #

Representational ((,,,,,) a b :: * -> * -> * -> * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b0 -> Coercion ((,,,,,) a b a0) ((,,,,,) a b b0) #

Representational ((,,,,) a b :: * -> * -> * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b0 -> Coercion ((,,,,) a b a0) ((,,,,) a b b0) #

Representational ((->) :: * -> * -> *) # 
Instance details

Defined in Data.Roles

Methods

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

Representational ((,,,) a b :: * -> * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b0 -> Coercion ((,,,) a b a0) ((,,,) a b b0) #

Representational ((,,,,,) a b c :: * -> * -> * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b0 -> Coercion ((,,,,,) a b c a0) ((,,,,,) a b c b0) #

Representational ((,,,,) a b c :: * -> * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b0 -> Coercion ((,,,,) a b c a0) ((,,,,) a b c b0) #

Representational ((,,,,,) a b c d :: * -> * -> *) # 
Instance details

Defined in Data.Roles

Methods

rep :: Coercion a0 b0 -> Coercion ((,,,,,) a b c d a0) ((,,,,,) a b c d b0) #

class Representational t => Phantom (t :: k1 -> k2) where #

Methods

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

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

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

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

Instances
Phantom (Proxy :: k1 -> *) # 
Instance details

Defined in Data.Roles

Methods

phantom :: Coercion (Proxy a) (Proxy b) #

Phantom (Const a :: k1 -> *) # 
Instance details

Defined in Data.Roles

Methods

phantom :: Coercion (Const a a0) (Const a b) #