- class Additive a b c | a b -> c where
- (+) :: a -> b -> c
- class Multiplicative a b c | a b -> c where
- (*) :: a -> b -> c
- class AdditiveInvertable a where
- additiveInverse :: a -> a
- class MultiplicativeInvertable a where
- multiplicativeInverse :: a -> a
- class Normable a where
- class InnerProductSpace a where
- (-) :: Additive a b c => AdditiveInvertable b => a -> b -> c
- (/) :: Multiplicative a b c => MultiplicativeInvertable b => a -> b -> c
Num is too big a class and doesn't make sense for, say, vectors.
class Multiplicative a b c | a b -> c whereSource
Multiplicative ℕ ℕ ℕ | |
Multiplicative ℕ ℝ ℝ | |
Multiplicative ℝ ℕ ℝ | |
Multiplicative ℝ ℝ3 ℝ3 | |
Multiplicative ℝ ℝ2 ℝ2 | |
Multiplicative ℝ ℝ ℝ | |
Multiplicative a b c => Multiplicative (d -> a) (d -> b) (d -> c) |
class AdditiveInvertable a whereSource
additiveInverse :: a -> aSource
class MultiplicativeInvertable a whereSource
multiplicativeInverse :: a -> aSource
class InnerProductSpace a whereSource
I should be able to create instances for all Num instances,
(-) :: Additive a b c => AdditiveInvertable b => a -> b -> cSource
(/) :: Multiplicative a b c => MultiplicativeInvertable b => a -> b -> cSource