-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Type-level integers, using TypeNats, Data Kinds, and Closed Type Families. -- @package numtype-dk @version 0.5 -- |

Summary

-- -- Type-level integers for GHC 7.8+. -- -- We provide type level arithmetic operations. We also provide -- term-level arithmetic operations on proxys, and conversion from the -- type level to the term level. -- --

Planned Obsolesence

-- -- We commit this package to hackage in sure and certain hope of the -- coming of glorious GHC integer type literals, when the sea shall give -- up her dead, and this package shall be rendered unto obsolescence. module Numeric.NumType.DK.Integers data TypeInt Neg10Minus :: Nat -> TypeInt Neg9 :: TypeInt Neg8 :: TypeInt Neg7 :: TypeInt Neg6 :: TypeInt Neg5 :: TypeInt Neg4 :: TypeInt Neg3 :: TypeInt Neg2 :: TypeInt Neg1 :: TypeInt Zero :: TypeInt Pos1 :: TypeInt Pos2 :: TypeInt Pos3 :: TypeInt Pos4 :: TypeInt Pos5 :: TypeInt Pos6 :: TypeInt Pos7 :: TypeInt Pos8 :: TypeInt Pos9 :: TypeInt Pos10Plus :: Nat -> TypeInt -- | TypeInt negation. -- | Absolute value. -- | Signum. -- | TypeInt addition. -- | TypeInt subtraction. -- | TypeInt multiplication. -- | TypeInt division. -- | TypeInt exponentiation. pred :: Proxy i -> Proxy (Pred i) succ :: Proxy i -> Proxy (Succ i) negate :: Proxy i -> Proxy (Negate i) abs :: Proxy i -> Proxy (Abs i) signum :: Proxy i -> Proxy (Signum i) (+) :: Proxy i -> Proxy i' -> Proxy (i + i') (-) :: Proxy i -> Proxy i' -> Proxy (i - i') (*) :: Proxy i -> Proxy i' -> Proxy (i * i') (/) :: Proxy i -> Proxy i' -> Proxy (i / i') (^) :: Proxy i -> Proxy i' -> Proxy (i ^ i') zero :: Proxy Zero pos1 :: Proxy Pos1 pos2 :: Proxy Pos2 pos3 :: Proxy Pos3 pos4 :: Proxy Pos4 pos5 :: Proxy Pos5 pos6 :: Proxy Pos6 pos7 :: Proxy Pos7 pos8 :: Proxy Pos8 pos9 :: Proxy Pos9 neg1 :: Proxy Neg1 neg2 :: Proxy Neg2 neg3 :: Proxy Neg3 neg4 :: Proxy Neg4 neg5 :: Proxy Neg5 neg6 :: Proxy Neg6 neg7 :: Proxy Neg7 neg8 :: Proxy Neg8 neg9 :: Proxy Neg9 -- | Conversion to a Num. class KnownTypeInt (i :: TypeInt) toNum :: (KnownTypeInt i, Num a) => Proxy i -> a instance Typeable 'Neg10Minus instance Typeable 'Neg9 instance Typeable 'Neg8 instance Typeable 'Neg7 instance Typeable 'Neg6 instance Typeable 'Neg5 instance Typeable 'Neg4 instance Typeable 'Neg3 instance Typeable 'Neg2 instance Typeable 'Neg1 instance Typeable 'Zero instance Typeable 'Pos1 instance Typeable 'Pos2 instance Typeable 'Pos3 instance Typeable 'Pos4 instance Typeable 'Pos5 instance Typeable 'Pos6 instance Typeable 'Pos7 instance Typeable 'Pos8 instance Typeable 'Pos9 instance Typeable 'Pos10Plus instance Typeable TypeInt instance Typeable KnownTypeInt instance KnownTypeInt (Pred ('Pos10Plus n)) => KnownTypeInt ('Pos10Plus n) instance KnownTypeInt 'Pos9 instance KnownTypeInt 'Pos8 instance KnownTypeInt 'Pos7 instance KnownTypeInt 'Pos6 instance KnownTypeInt 'Pos5 instance KnownTypeInt 'Pos4 instance KnownTypeInt 'Pos3 instance KnownTypeInt 'Pos2 instance KnownTypeInt 'Pos1 instance KnownTypeInt 'Zero instance KnownTypeInt 'Neg1 instance KnownTypeInt 'Neg2 instance KnownTypeInt 'Neg3 instance KnownTypeInt 'Neg4 instance KnownTypeInt 'Neg5 instance KnownTypeInt 'Neg6 instance KnownTypeInt 'Neg7 instance KnownTypeInt 'Neg8 instance KnownTypeInt 'Neg9 instance KnownTypeInt (Succ ('Neg10Minus n)) => KnownTypeInt ('Neg10Minus n)