Portability | GHC only? |
---|---|
Stability | Stable |
Maintainer | [email protected] |
Numeric.NumType
Description
Please refer to the literate Haskell code for documentation of both API and implementation.
Documentation
class (Add a b c, Sub c b a) => Sum a b c | a b -> c, a c -> b, b c -> aSource
Instances
(Add a b c, Sub c b a) => Sum a b c |
class (NumTypeI a, NonZeroI b, NumTypeI c) => Div a b c | a b -> c, c b -> aSource
Instances
NonZeroI n => Div Zero n Zero | |
(NegTypeI n, Negate n p', Div (Pos p') (Pos p) (Pos p''), Negate (Pos p'') (Neg n'')) => Div (Neg n) (Pos p) (Neg n'') | |
(NegTypeI n, NegTypeI n', Negate n p, Negate n' p', Div (Pos p) (Pos p') (Pos p'')) => Div (Neg n) (Neg n') (Pos p'') | |
(NegTypeI n, Negate n p', Div (Pos p) (Pos p') (Pos p''), Negate (Pos p'') (Neg n'')) => Div (Pos p) (Neg n) (Neg n'') | |
(Sum n' (Pos n'') (Pos n), Div n'' (Pos n') n''', PosTypeI n''') => Div (Pos n) (Pos n') (Pos n''') |
Instances
Succ Zero (Pos Zero) | |
(PosTypeI p, Div c (Pos p) a) => Mul a (Pos p) c | |
(Succ a' a, PosTypeI b, Sub a' b c) => Sub a (Pos b) c | |
PosTypeI n => Show (Pos n) | |
PosTypeI n => NonZeroI (Pos n) | |
PosTypeI n => PosTypeI (Pos n) | |
PosTypeI n => NumTypeI (Pos n) | |
(PosTypeI a, Succ b c, Add a c d) => Add (Pos a) b d | |
PosTypeI a => Succ (Pos a) (Pos (Pos a)) | |
(NegTypeI a, PosTypeI b, Negate a b) => Negate (Neg a) (Pos b) | |
(PosTypeI a, NegTypeI b, Negate a b) => Negate (Pos a) (Neg b) | |
(NegTypeI n, Negate n p', Div (Pos p') (Pos p) (Pos p''), Negate (Pos p'') (Neg n'')) => Div (Neg n) (Pos p) (Neg n'') | |
(NegTypeI n, NegTypeI n', Negate n p, Negate n' p', Div (Pos p) (Pos p') (Pos p'')) => Div (Neg n) (Neg n') (Pos p'') | |
(NegTypeI n, Negate n p', Div (Pos p) (Pos p') (Pos p''), Negate (Pos p'') (Neg n'')) => Div (Pos p) (Neg n) (Neg n'') | |
(Sum n' (Pos n'') (Pos n), Div n'' (Pos n') n''', PosTypeI n''') => Div (Pos n) (Pos n') (Pos n''') |
Instances
(NegTypeI n, Div c (Neg n) a) => Mul a (Neg n) c | |
(Succ a a', NegTypeI b, Sub a' b c) => Sub a (Neg b) c | |
NegTypeI n => Show (Neg n) | |
NegTypeI n => NonZeroI (Neg n) | |
NegTypeI n => NegTypeI (Neg n) | |
NegTypeI n => NumTypeI (Neg n) | |
Succ (Neg Zero) Zero | |
(NegTypeI a, Succ c b, Add a c d) => Add (Neg a) b d | |
NegTypeI a => Succ (Neg (Neg a)) (Neg a) | |
(NegTypeI a, PosTypeI b, Negate a b) => Negate (Neg a) (Pos b) | |
(PosTypeI a, NegTypeI b, Negate a b) => Negate (Pos a) (Neg b) | |
(NegTypeI n, Negate n p', Div (Pos p') (Pos p) (Pos p''), Negate (Pos p'') (Neg n'')) => Div (Neg n) (Pos p) (Neg n'') | |
(NegTypeI n, NegTypeI n', Negate n p, Negate n' p', Div (Pos p) (Pos p') (Pos p'')) => Div (Neg n) (Neg n') (Pos p'') | |
(NegTypeI n, Negate n p', Div (Pos p) (Pos p') (Pos p''), Negate (Pos p'') (Neg n'')) => Div (Pos p) (Neg n) (Neg n'') |