type-level-tf-0.2.1: Type-level programming library (type families)

Portabilitynon-portable (TypeOperators)
Stabilityexperimental
Maintaineralfonso.acosta@gmail.com

Data.TypeLevel.Num.Reps

Contents

Description

Type-level numerical representations. Currently, only decimals are supported.

Synopsis

Decimal representation

data D0 Source

Decimal digit zero

Instances

Show D0 
Typeable D0 
Lift D0 
NatI D0 
PosI x => PosI (:* x D0) 
PosI x => NatI (:* x D0) 

data D1 Source

Decimal digit one

Instances

Show D1 
Typeable D1 
Lift D1 
PosI D1 
NatI D1 
PosI x => PosI (:* x D1) 
PosI x => NatI (:* x D1) 

data D2 Source

Decimal digit two

Instances

Show D2 
Typeable D2 
Lift D2 
PosI D2 
NatI D2 
PosI x => PosI (:* x D2) 
PosI x => NatI (:* x D2) 

data D3 Source

Decimal digit three

Instances

Show D3 
Typeable D3 
Lift D3 
PosI D3 
NatI D3 
PosI x => PosI (:* x D3) 
PosI x => NatI (:* x D3) 

data D4 Source

Decimal digit four

Instances

Show D4 
Typeable D4 
Lift D4 
PosI D4 
NatI D4 
PosI x => PosI (:* x D4) 
PosI x => NatI (:* x D4) 

data D5 Source

Decimal digit five

Instances

Show D5 
Typeable D5 
Lift D5 
PosI D5 
NatI D5 
PosI x => PosI (:* x D5) 
PosI x => NatI (:* x D5) 

data D6 Source

Decimal digit six

Instances

Show D6 
Typeable D6 
Lift D6 
PosI D6 
NatI D6 
PosI x => PosI (:* x D6) 
PosI x => NatI (:* x D6) 

data D7 Source

Decimal digit seven

Instances

Show D7 
Typeable D7 
Lift D7 
PosI D7 
NatI D7 
PosI x => PosI (:* x D7) 
PosI x => NatI (:* x D7) 

data D8 Source

Decimal digit eight

Instances

Show D8 
Typeable D8 
Lift D8 
PosI D8 
NatI D8 
PosI x => PosI (:* x D8) 
PosI x => NatI (:* x D8) 

data D9 Source

Decimal digit nine

Instances

Show D9 
Typeable D9 
Lift D9 
PosI D9 
NatI D9 
PosI x => PosI (:* x D9) 
PosI x => NatI (:* x D9) 

data a :* b Source

Connective to glue digits together. For example, D1 :* D0 :* D0 represents the decimal number 100

Constructors

a :* b 

Instances

Typeable2 :* 
(Show a, Show b) => Show (:* a b) 
(Lift a, Lift b) => Lift (:* a b) 
PosI x => PosI (:* x D9) 
PosI x => PosI (:* x D8) 
PosI x => PosI (:* x D7) 
PosI x => PosI (:* x D6) 
PosI x => PosI (:* x D5) 
PosI x => PosI (:* x D4) 
PosI x => PosI (:* x D3) 
PosI x => PosI (:* x D2) 
PosI x => PosI (:* x D1) 
PosI x => PosI (:* x D0) 
PosI x => NatI (:* x D9) 
PosI x => NatI (:* x D8) 
PosI x => NatI (:* x D7) 
PosI x => NatI (:* x D6) 
PosI x => NatI (:* x D5) 
PosI x => NatI (:* x D4) 
PosI x => NatI (:* x D3) 
PosI x => NatI (:* x D2) 
PosI x => NatI (:* x D1) 
PosI x => NatI (:* x D0)