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

CopyrightAlexey Khudyakov
LicenseBSD3-style (see LICENSE)
MaintainerAlexey Khudyakov <alexey.skladnoy@gmail.com>
Stabilityunstable
Portabilityunportable (GHC only)
Safe HaskellSafe-Inferred
LanguageHaskell98

TypeLevel.Reify

Description

 

Synopsis

Documentation

data Witness t a Source

Value with type tag

Constructors

Witness 

Fields

getValue :: a
 

Instances

Eq a => Eq (Witness t a) 
(Data t, Data a) => Data (Witness t a) 
Show a => Show (Witness t a) 
Typeable (* -> * -> *) Witness 

class Reify t a where Source

Convert type level into value level using

Methods

witness :: Witness t a Source

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