-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Composable class-based roles
--   
--   Composable class-based roles
@package roles
@version 0.2.0.0

module Data.Roles
class Representational (t :: k1 -> k2)

-- | An argument is representational if you can lift a coercion of the
--   argument into one of the whole
rep :: Representational 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
rep :: (Representational t, Phantom t) => Coercion a b -> Coercion (t a) (t b)
class Representational t => Phantom (t :: k1 -> k2)

-- | An argument is phantom if you can <a>coerce</a> the whole ignoring the
--   argument
phantom :: Phantom t => Coercion (t a) (t b)

-- | An argument is phantom if you can <a>coerce</a> the whole ignoring the
--   argument
phantom :: (Phantom t, Coercible (t a) (t b)) => Coercion (t a) (t b)
instance Data.Roles.Representational Data.Proxy.Proxy
instance Data.Roles.Phantom Data.Proxy.Proxy
instance Data.Roles.Representational Data.Functor.Const.Const
instance Data.Roles.Representational (Data.Functor.Const.Const a)
instance Data.Roles.Phantom (Data.Functor.Const.Const a)
instance Data.Roles.Representational Data.Type.Coercion.Coercion
instance forall k1 (a :: k1). Data.Roles.Representational (Data.Type.Coercion.Coercion a)
instance Data.Roles.Representational (->)
instance Data.Roles.Representational ((->) a)
instance Data.Roles.Representational Data.Either.Either
instance Data.Roles.Representational (Data.Either.Either a)
instance Data.Roles.Representational (,)
instance Data.Roles.Representational ((,) a)
instance Data.Roles.Representational (,,)
instance Data.Roles.Representational ((,,) a)
instance Data.Roles.Representational ((,,) a b)
instance Data.Roles.Representational (,,,)
instance Data.Roles.Representational ((,,,) a)
instance Data.Roles.Representational ((,,,) a b)
instance Data.Roles.Representational ((,,,) a b c)
instance Data.Roles.Representational (,,,,)
instance Data.Roles.Representational ((,,,,) a)
instance Data.Roles.Representational ((,,,,) a b)
instance Data.Roles.Representational ((,,,,) a b c)
instance Data.Roles.Representational ((,,,,) a b c d)
instance Data.Roles.Representational (,,,,,)
instance Data.Roles.Representational ((,,,,,) a)
instance Data.Roles.Representational ((,,,,,) a b)
instance Data.Roles.Representational ((,,,,,) a b c)
instance Data.Roles.Representational ((,,,,,) a b c d)
instance Data.Roles.Representational ((,,,,,) a b c d e)
instance Data.Roles.Representational []
instance Data.Roles.Representational GHC.Base.Maybe
instance Data.Roles.Representational GHC.Types.IO
instance Data.Roles.Representational (GHC.ST.ST s)
instance Data.Roles.Representational (Data.Map.Internal.Map k)
instance Data.Roles.Representational Data.IntMap.Internal.IntMap
instance Data.Roles.Representational Data.Complex.Complex
instance Data.Roles.Representational Data.Monoid.Sum
instance Data.Roles.Representational Data.Monoid.Product
instance Data.Roles.Representational Data.Monoid.Dual
instance Data.Roles.Representational Data.Monoid.Endo
instance Data.Roles.Representational Data.Monoid.First
instance Data.Roles.Representational Data.Monoid.Last
