dimensional-0.7.3: Statically checked physical dimensions.Source codeContentsIndex
Numeric.NumType
PortabilityGHC only?
StabilityStable
Maintainerbjorn.buckwalter@gmail.com
Description
Please refer to the literate Haskell code for documentation of both API and implementation.
Documentation
class NumTypeI n => NumType n Source
class PosTypeI n => PosType n Source
class NegTypeI n => NegType n Source
class NonZeroI n => NonZero n Source
class (NumTypeI a, NumTypeI b) => Succ a b | a -> b, b -> aSource
show/hide Instances
Succ Zero (Pos Zero)
Succ Zero (Pos Zero)
Succ (Neg Zero) Zero
Succ (Neg Zero) Zero
NegTypeI a => Succ (Neg (Neg a)) (Neg a)
PosTypeI a => Succ (Pos a) (Pos (Pos a))
class (NumTypeI a, NumTypeI b) => Negate a b | a -> b, b -> aSource
show/hide Instances
Negate Zero Zero
(NegTypeI a, PosTypeI b, Negate a b) => Negate (Neg a) (Pos b)
(NegTypeI a, PosTypeI b, Negate a b) => Negate (Neg a) (Pos b)
(PosTypeI a, NegTypeI b, Negate a b) => Negate (Pos a) (Neg b)
(PosTypeI a, NegTypeI b, Negate a b) => Negate (Pos a) (Neg b)
class (Add a b c, Sub c b a) => Sum a b c | a b -> c, a c -> b, b c -> aSource
class (NumTypeI a, NonZeroI b, NumTypeI c) => Div a b c | a b -> c, c b -> aSource
show/hide 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, 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, 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'')
(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''')
class (NumTypeI a, NumTypeI b, NumTypeI c) => Mul a b c | a b -> cSource
show/hide Instances
NumTypeI n => Mul n Zero Zero
(NegTypeI n, Div c (Neg n) a) => Mul a (Neg n) c
(PosTypeI p, Div c (Pos p) a) => Mul a (Pos p) c
toNum :: (NumTypeI n, Num a) => n -> aSource
incr :: Succ a b => a -> bSource
decr :: Succ a b => b -> aSource
negate :: Negate a b => a -> bSource
(+) :: Sum a b c => a -> b -> cSource
(-) :: Sum a b c => c -> b -> aSource
(*) :: Mul a b c => a -> b -> cSource
(/) :: Div a b c => a -> b -> cSource
data Zero Source
show/hide Instances
Show Zero
NegTypeI Zero
PosTypeI Zero
NumTypeI Zero
Negate Zero Zero
NumTypeI n => Mul n Zero Zero
NonZeroI n => Div Zero n Zero
NumType a => Sub a Zero a
NumTypeI a => Add Zero a a
Succ Zero (Pos Zero)
Succ (Neg Zero) Zero
data Pos n Source
show/hide 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''')
data Neg n Source
show/hide 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'')
type Pos1 = Pos ZeroSource
type Pos2 = Pos Pos1Source
type Pos3 = Pos Pos2Source
type Pos4 = Pos Pos3Source
type Pos5 = Pos Pos4Source
type Neg1 = Neg ZeroSource
type Neg2 = Neg Neg1Source
type Neg3 = Neg Neg2Source
type Neg4 = Neg Neg3Source
type Neg5 = Neg Neg4Source
zero :: ZeroSource
pos1 :: Pos1Source
pos2 :: Pos2Source
pos3 :: Pos3Source
pos4 :: Pos4Source
pos5 :: Pos5Source
neg1 :: Neg1Source
neg2 :: Neg2Source
neg3 :: Neg3Source
neg4 :: Neg4Source
neg5 :: Neg5Source
Produced by Haddock version 2.4.2