-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | ghc-7.6/7.8 compatible GHC.TypeLits, Data.Typeable and Data.Proxy. -- @package types-compat @version 0.1.1 module Data.Proxy.Compat -- | A concrete, poly-kinded proxy type data Proxy (t :: k) :: k -> * Proxy :: Proxy -- | asProxyTypeOf is a type-restricted version of const. It -- is usually used as an infix operator, and its typing forces its first -- argument (which is usually overloaded) to have the same type as the -- tag of the second. asProxyTypeOf :: a -> Proxy * a -> a module Data.Typeable.Compat -- | The class Typeable allows a concrete representation of a type -- to be calculated. class Typeable (a :: k) typeOf :: Typeable * a => a -> TypeRep -- | The type-safe cast operation cast :: (Typeable * a, Typeable * b) => a -> Maybe b -- | A flexible variation parameterised in a type constructor gcast :: (Typeable k a, Typeable k b) => c a -> Maybe (c b) -- | A concrete representation of a (monomorphic) type. TypeRep -- supports reasonably efficient equality. data TypeRep :: * showsTypeRep :: TypeRep -> ShowS -- | An abstract representation of a type constructor. TyCon objects -- can be built using mkTyCon. data TyCon :: * -- | Observe string encoding of a type representation tyConString :: TyCon -> String -- | Since: 4.5.0.0 tyConPackage :: TyCon -> String -- | Since: 4.5.0.0 tyConModule :: TyCon -> String -- | Since: 4.5.0.0 tyConName :: TyCon -> String -- | Builds a TyCon object representing a type constructor. An -- implementation of Data.Typeable should ensure that the -- following holds: -- --
--   A==A' ^ B==B' ^ C==C' ==> mkTyCon A B C == mkTyCon A' B' C'
--   
mkTyCon3 :: String -> String -> String -> TyCon -- | Applies a type constructor to a sequence of types mkTyConApp :: TyCon -> [TypeRep] -> TypeRep -- | Adds a TypeRep argument to a TypeRep. mkAppTy :: TypeRep -> TypeRep -> TypeRep -- | A special case of mkTyConApp, which applies the function type -- constructor to a pair of types. mkFunTy :: TypeRep -> TypeRep -> TypeRep -- | Splits a type constructor application splitTyConApp :: TypeRep -> (TyCon, [TypeRep]) -- | Applies a type to a function type. Returns: Just u if -- the first argument represents a function of type t -> u -- and the second argument represents a function of type t. -- Otherwise, returns Nothing. funResultTy :: TypeRep -> TypeRep -> Maybe TypeRep -- | Observe the type constructor of a type representation typeRepTyCon :: TypeRep -> TyCon -- | Observe the argument types of a type representation typeRepArgs :: TypeRep -> [TypeRep] -- | Takes a value of type a and returns a concrete representation -- of that type. -- -- Since: 4.7.0.0 typeRep :: Typeable k a => proxy a -> TypeRep -- | A concrete, poly-kinded proxy type data Proxy (t :: k) :: k -> * Proxy :: Proxy -- | this module exports: -- -- Kinds: -- --
--   Nat
--   Symbol
--   
-- -- Classes: -- --
--   KnownNat n
--   KnownSymbol n
--   
-- -- Values: -- --
--   natVal :: forall n proxy. KnownNat n => proxy n -> Integer
--   symbolVal :: forall n proxy. KnownSymbol n => proxy n -> String
--   
-- -- types -- --
--   type (<=) x y = (x <=? y) ~ True
--   
--   type family m <=? n :: Bool
--   type family m + n :: Nat
--   type family m * n :: Nat
--   type family m * n :: Nat
--   
module GHC.TypeLits.Compat