Module
Type.Data.Peano.Int.Definition    
- Package
 - purescript-typelevel-peano
 - Repository
 - csicar/purescript-typelevel-peano
 
#Pos Source
data Pos :: Nat -> IntRepresents a posivite number
Pos (Succ Z) ^= + 1
Instances
(IsNat n) => IsInt (Pos n)(SumInt (Pos a) (Pos b) (Pos c')) => SumInt (Pos (Succ a)) (Pos b) (Pos (Succ c'))(SumInt (Pos a) (Neg b) c) => SumInt (Pos (Succ a)) (Neg (Succ b)) c(SumInt (Neg a) (Pos b) c) => SumInt (Neg (Succ a)) (Pos (Succ b)) cSumInt (Pos Z) (Pos b) (Pos b)SumInt (Neg (Succ a)) (Pos Z) (Neg (Succ a))SumInt (Pos Z) (Neg (Succ b)) (Neg (Succ b))SumInt (Pos a) (Neg Z) (Pos a)SumInt (Neg Z) (Pos a) (Pos a)Inverse (Pos Z) (Pos Z)Inverse (Pos a) (Neg a)Inverse (Neg Z) (Pos Z)Inverse (Neg a) (Pos a)(ProductInt (Pos a) (Pos b) (Pos c)) => ProductInt (Neg a) (Pos b) (Neg c)(ProductInt (Pos a) (Pos b) (Pos c)) => ProductInt (Neg a) (Neg b) (Pos c)ProductInt (Pos Z) a (Pos Z)ProductInt (Pos (Succ Z)) a a(ProductInt (Pos a) (Pos b) (Pos c)) => ProductInt (Pos a) (Neg b) (Neg c)(ProductInt (Pos a) b ab, SumInt ab b result) => ProductInt (Pos (Succ a)) b result(IsZeroNat a isZero) => IsZeroInt (Pos a) isZero
#Neg Source
data Neg :: Nat -> IntRepresents a negative number
Neg (Succ Z) ^= - 1
Instances
(IsNat n) => IsInt (Neg n)(SumInt (Pos a) (Neg b) c) => SumInt (Pos (Succ a)) (Neg (Succ b)) c(SumInt (Neg a) (Pos b) c) => SumInt (Neg (Succ a)) (Pos (Succ b)) c(SumInt (Neg a) (Neg b) (Neg c')) => SumInt (Neg (Succ a)) (Neg b) (Neg (Succ c'))SumInt (Neg Z) (Neg b) (Neg b)SumInt (Neg (Succ a)) (Pos Z) (Neg (Succ a))SumInt (Pos Z) (Neg (Succ b)) (Neg (Succ b))SumInt (Pos a) (Neg Z) (Pos a)SumInt (Neg Z) (Pos a) (Pos a)Inverse (Pos a) (Neg a)Inverse (Neg Z) (Pos Z)Inverse (Neg a) (Pos a)(ProductInt (Pos a) (Pos b) (Pos c)) => ProductInt (Neg a) (Pos b) (Neg c)(ProductInt (Pos a) (Pos b) (Pos c)) => ProductInt (Neg a) (Neg b) (Pos c)(ProductInt (Pos a) (Pos b) (Pos c)) => ProductInt (Pos a) (Neg b) (Neg c)(IsZeroNat a isZero) => IsZeroInt (Neg a) isZero
#SumInt Source
class SumInt (a :: Int) (b :: Int) (c :: Int) | a b -> cInstances
(SumInt (Pos a) (Pos b) (Pos c')) => SumInt (Pos (Succ a)) (Pos b) (Pos (Succ c'))(SumInt (Pos a) (Neg b) c) => SumInt (Pos (Succ a)) (Neg (Succ b)) c(SumInt (Neg a) (Pos b) c) => SumInt (Neg (Succ a)) (Pos (Succ b)) c(SumInt (Neg a) (Neg b) (Neg c')) => SumInt (Neg (Succ a)) (Neg b) (Neg (Succ c'))SumInt (Pos Z) (Pos b) (Pos b)SumInt (Neg Z) (Neg b) (Neg b)SumInt (Neg (Succ a)) (Pos Z) (Neg (Succ a))SumInt (Pos Z) (Neg (Succ b)) (Neg (Succ b))SumInt (Pos a) (Neg Z) (Pos a)SumInt (Neg Z) (Pos a) (Pos a)
#ProductInt Source
class ProductInt (a :: Int) (b :: Int) (c :: Int) | a b -> cInstances
(ProductInt (Pos a) (Pos b) (Pos c)) => ProductInt (Neg a) (Pos b) (Neg c)(ProductInt (Pos a) (Pos b) (Pos c)) => ProductInt (Neg a) (Neg b) (Pos c)ProductInt (Pos Z) a (Pos Z)ProductInt (Pos (Succ Z)) a a(ProductInt (Pos a) (Pos b) (Pos c)) => ProductInt (Pos a) (Neg b) (Neg c)(ProductInt (Pos a) b ab, SumInt ab b result) => ProductInt (Pos (Succ a)) b result
#prod Source
prod :: forall proxy a b c. ProductInt a b c => proxy a -> proxy b -> proxy c
reflect a type-level Int to a value-level Int