open-witness-0.6: open witnesses
Safe HaskellNone
LanguageHaskell2010

Data.Type.OpenWitness.Typeable

Description

This is an approximate re-implementation of Data.Typeable using open witnesses.

Synopsis

Documentation

class Typeable (a :: k) where Source #

types of kind Type with a representation

Methods

typeRep :: TypeRep a Source #

Instances

Instances details
Typeable () Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Methods

typeRep :: TypeRep () Source #

Typeable Bool Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Typeable Char Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Typeable Constraint Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Typeable Int Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Typeable Type Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

(Typeable f, Typeable a) => Typeable (f a :: k2) Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Methods

typeRep :: TypeRep (f a) Source #

Typeable Either Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Typeable (,) Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Typeable Maybe Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Typeable [] Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Typeable (Typeable :: k -> Constraint) Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Typeable (TypeRep :: k -> Type) Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Methods

typeRep :: TypeRep (TypeRep :: k -> Type) Source #

Typeable (->) Source # 
Instance details

Defined in Data.Type.OpenWitness.Typeable

Methods

typeRep :: TypeRep (->) Source #

type Fun = (->) Source #

cast :: (Typeable a, Typeable b) => a -> Maybe b Source #

gcast :: forall k (a :: k) (b :: k) c. (Typeable a, Typeable b) => c a -> Maybe (c b) Source #

mkFunTy :: TypeRep a -> TypeRep b -> TypeRep (a -> b) Source #

given representations of a and b, make a representation of a -> b

funResultTy :: TypeRep (a -> b) -> TypeRep a -> Maybe (TypeRep b) Source #

given representations of a -> b and a, make a representation of b (otherwise not)

mkAppTy :: forall k1 k2 (f :: k1 -> k2) (a :: k1). TypeRep f -> TypeRep a -> TypeRep (f a) Source #