open-witness-0.4.0.1: open witnesses

Safe HaskellNone
LanguageHaskell2010

Data.OpenWitness.Typeable

Description

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

Synopsis

Documentation

class Typeable (a :: k) where #

types of kind * with a representation

Minimal complete definition

typeRep

Methods

typeRep :: TypeRep a #

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

Defined in Data.OpenWitness.Typeable

Methods

typeRep :: TypeRep (f a) #

Typeable Bool # 
Instance details

Defined in Data.OpenWitness.Typeable

Methods

typeRep :: TypeRep Bool #

Typeable Char # 
Instance details

Defined in Data.OpenWitness.Typeable

Methods

typeRep :: TypeRep Char #

Typeable Int # 
Instance details

Defined in Data.OpenWitness.Typeable

Methods

typeRep :: TypeRep Int #

Typeable Type # 
Instance details

Defined in Data.OpenWitness.Typeable

Methods

typeRep :: TypeRep Type #

Typeable Constraint # 
Instance details

Defined in Data.OpenWitness.Typeable

Typeable () # 
Instance details

Defined in Data.OpenWitness.Typeable

Methods

typeRep :: TypeRep () #

Typeable Either # 
Instance details

Defined in Data.OpenWitness.Typeable

Typeable (,) # 
Instance details

Defined in Data.OpenWitness.Typeable

Methods

typeRep :: TypeRep (,) #

Typeable [] # 
Instance details

Defined in Data.OpenWitness.Typeable

Methods

typeRep :: TypeRep [] #

Typeable Maybe # 
Instance details

Defined in Data.OpenWitness.Typeable

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

Defined in Data.OpenWitness.Typeable

Typeable (TypeRep :: k -> *) # 
Instance details

Defined in Data.OpenWitness.Typeable

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

Defined in Data.OpenWitness.Typeable

Methods

typeRep :: TypeRep (->) #

type Fun = (->) #

cast :: forall (a :: *) (b :: *). (Typeable a, Typeable b) => a -> Maybe b #

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

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

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

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

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