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