type-level-numbers-0.1.1.1: Type level numbers implemented using type families.

Portabilityunportable (GHC only)
Stabilityunstable
MaintainerAlexey Khudyakov <alexey.skladnoy@gmail.com>
Safe HaskellSafe-Inferred

TypeLevel.Reify

Description

 

Synopsis

Documentation

data Witness t a Source

Value with type tag

Constructors

Witness 

Fields

getValue :: a
 

Instances

Typeable2 Witness 
Eq a => Eq (Witness t a) 
(Data t, Data a) => Data (Witness t a) 
Show a => Show (Witness t a) 

class Reify t a whereSource

Convert type level into value level using

Methods

witness :: Witness t aSource

Instances

Reify False Bool 
Reify True Bool 
Reify Z Int 
Reify Z Int8 
Reify Z Int16 
Reify Z Int32 
Reify Z Int64 
Reify Z Integer 
Reify Z Word8 
Reify Z Word16 
Reify Z Word32 
Reify Z Word64 
Nat (O n) => Reify (O n) Int64 
Nat (O n) => Reify (O n) Int32 
(Nat (O n), Lesser (O n) (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (I Z))))))))))))))))) => Reify (O n) Int16 
(Nat (O n), Lesser (O n) (O (O (O (O (O (O (O (I Z))))))))) => Reify (O n) Int8 
Nat (O n) => Reify (O n) Word64 
Nat (O n) => Reify (O n) Word32 
(Nat (O n), Lesser (O n) (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (I Z)))))))))))))))))) => Reify (O n) Word16 
(Nat (O n), Lesser (O n) (O (O (O (O (O (O (O (O (I Z)))))))))) => Reify (O n) Word8 
Nat (O n) => Reify (O n) Int 
Nat (O n) => Reify (O n) Integer 
Nat (I n) => Reify (I n) Int64 
Nat (I n) => Reify (I n) Int32 
(Nat (I n), Lesser (I n) (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (I Z))))))))))))))))) => Reify (I n) Int16 
(Nat (I n), Lesser (I n) (O (O (O (O (O (O (O (I Z))))))))) => Reify (I n) Int8 
Nat (I n) => Reify (I n) Word64 
Nat (I n) => Reify (I n) Word32 
(Nat (I n), Lesser (I n) (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (I Z)))))))))))))))))) => Reify (I n) Word16 
(Nat (I n), Lesser (I n) (O (O (O (O (O (O (O (O (I Z)))))))))) => Reify (I n) Word8 
Nat (I n) => Reify (I n) Int 
Nat (I n) => Reify (I n) Integer