-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Constructive abstract algebra
--   
--   Constructive abstract algebra
@package algebra
@version 4.3.1

module Numeric.Additive.Class

-- | <pre>
--   (a + b) + c = a + (b + c)
--   sinnum 1 a = a
--   sinnum (2 * n) a = sinnum n a + sinnum n a
--   sinnum (2 * n + 1) a = sinnum n a + sinnum n a + a
--   </pre>
class Additive r
(+) :: Additive r => r -> r -> r

-- | sinnum1p n r = sinnum (1 + n) r
sinnum1p :: Additive r => Natural -> r -> r
sumWith1 :: (Additive r, Foldable1 f) => (a -> r) -> f a -> r
sum1 :: (Foldable1 f, Additive r) => f r -> r

-- | an additive abelian semigroup
--   
--   a + b = b + a
class Additive r => Abelian r

-- | An additive semigroup with idempotent addition.
--   
--   <pre>
--   a + a = a
--   </pre>
class Additive r => Idempotent r
sinnum1pIdempotent :: Natural -> r -> r
class Additive m => Partitionable m

-- | partitionWith f c returns a list containing f a b for each a b such
--   that a + b = c,
partitionWith :: Partitionable m => (m -> m -> r) -> m -> NonEmpty r
instance Numeric.Additive.Class.Idempotent ()
instance Numeric.Additive.Class.Idempotent GHC.Types.Bool
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (e -> r)
instance (Numeric.Additive.Class.Idempotent a, Numeric.Additive.Class.Idempotent b) => Numeric.Additive.Class.Idempotent (a, b)
instance (Numeric.Additive.Class.Idempotent a, Numeric.Additive.Class.Idempotent b, Numeric.Additive.Class.Idempotent c) => Numeric.Additive.Class.Idempotent (a, b, c)
instance (Numeric.Additive.Class.Idempotent a, Numeric.Additive.Class.Idempotent b, Numeric.Additive.Class.Idempotent c, Numeric.Additive.Class.Idempotent d) => Numeric.Additive.Class.Idempotent (a, b, c, d)
instance (Numeric.Additive.Class.Idempotent a, Numeric.Additive.Class.Idempotent b, Numeric.Additive.Class.Idempotent c, Numeric.Additive.Class.Idempotent d, Numeric.Additive.Class.Idempotent e) => Numeric.Additive.Class.Idempotent (a, b, c, d, e)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (e -> r)
instance Numeric.Additive.Class.Abelian ()
instance Numeric.Additive.Class.Abelian GHC.Types.Bool
instance Numeric.Additive.Class.Abelian GHC.Integer.Type.Integer
instance Numeric.Additive.Class.Abelian GHC.Natural.Natural
instance Numeric.Additive.Class.Abelian GHC.Types.Int
instance Numeric.Additive.Class.Abelian GHC.Int.Int8
instance Numeric.Additive.Class.Abelian GHC.Int.Int16
instance Numeric.Additive.Class.Abelian GHC.Int.Int32
instance Numeric.Additive.Class.Abelian GHC.Int.Int64
instance Numeric.Additive.Class.Abelian GHC.Types.Word
instance Numeric.Additive.Class.Abelian GHC.Word.Word8
instance Numeric.Additive.Class.Abelian GHC.Word.Word16
instance Numeric.Additive.Class.Abelian GHC.Word.Word32
instance Numeric.Additive.Class.Abelian GHC.Word.Word64
instance (Numeric.Additive.Class.Abelian a, Numeric.Additive.Class.Abelian b) => Numeric.Additive.Class.Abelian (a, b)
instance (Numeric.Additive.Class.Abelian a, Numeric.Additive.Class.Abelian b, Numeric.Additive.Class.Abelian c) => Numeric.Additive.Class.Abelian (a, b, c)
instance (Numeric.Additive.Class.Abelian a, Numeric.Additive.Class.Abelian b, Numeric.Additive.Class.Abelian c, Numeric.Additive.Class.Abelian d) => Numeric.Additive.Class.Abelian (a, b, c, d)
instance (Numeric.Additive.Class.Abelian a, Numeric.Additive.Class.Abelian b, Numeric.Additive.Class.Abelian c, Numeric.Additive.Class.Abelian d, Numeric.Additive.Class.Abelian e) => Numeric.Additive.Class.Abelian (a, b, c, d, e)
instance Numeric.Additive.Class.Partitionable GHC.Types.Bool
instance Numeric.Additive.Class.Partitionable GHC.Natural.Natural
instance Numeric.Additive.Class.Partitionable ()
instance (Numeric.Additive.Class.Partitionable a, Numeric.Additive.Class.Partitionable b) => Numeric.Additive.Class.Partitionable (a, b)
instance (Numeric.Additive.Class.Partitionable a, Numeric.Additive.Class.Partitionable b, Numeric.Additive.Class.Partitionable c) => Numeric.Additive.Class.Partitionable (a, b, c)
instance (Numeric.Additive.Class.Partitionable a, Numeric.Additive.Class.Partitionable b, Numeric.Additive.Class.Partitionable c, Numeric.Additive.Class.Partitionable d) => Numeric.Additive.Class.Partitionable (a, b, c, d)
instance (Numeric.Additive.Class.Partitionable a, Numeric.Additive.Class.Partitionable b, Numeric.Additive.Class.Partitionable c, Numeric.Additive.Class.Partitionable d, Numeric.Additive.Class.Partitionable e) => Numeric.Additive.Class.Partitionable (a, b, c, d, e)
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (b -> r)
instance Numeric.Additive.Class.Additive GHC.Types.Bool
instance Numeric.Additive.Class.Additive GHC.Natural.Natural
instance Numeric.Additive.Class.Additive GHC.Integer.Type.Integer
instance Numeric.Additive.Class.Additive GHC.Types.Int
instance Numeric.Additive.Class.Additive GHC.Int.Int8
instance Numeric.Additive.Class.Additive GHC.Int.Int16
instance Numeric.Additive.Class.Additive GHC.Int.Int32
instance Numeric.Additive.Class.Additive GHC.Int.Int64
instance Numeric.Additive.Class.Additive GHC.Types.Word
instance Numeric.Additive.Class.Additive GHC.Word.Word8
instance Numeric.Additive.Class.Additive GHC.Word.Word16
instance Numeric.Additive.Class.Additive GHC.Word.Word32
instance Numeric.Additive.Class.Additive GHC.Word.Word64
instance Numeric.Additive.Class.Additive ()
instance (Numeric.Additive.Class.Additive a, Numeric.Additive.Class.Additive b) => Numeric.Additive.Class.Additive (a, b)
instance (Numeric.Additive.Class.Additive a, Numeric.Additive.Class.Additive b, Numeric.Additive.Class.Additive c) => Numeric.Additive.Class.Additive (a, b, c)
instance (Numeric.Additive.Class.Additive a, Numeric.Additive.Class.Additive b, Numeric.Additive.Class.Additive c, Numeric.Additive.Class.Additive d) => Numeric.Additive.Class.Additive (a, b, c, d)
instance (Numeric.Additive.Class.Additive a, Numeric.Additive.Class.Additive b, Numeric.Additive.Class.Additive c, Numeric.Additive.Class.Additive d, Numeric.Additive.Class.Additive e) => Numeric.Additive.Class.Additive (a, b, c, d, e)

module Numeric.Algebra.Class

-- | A multiplicative semigroup
class Multiplicative r
(*) :: Multiplicative r => r -> r -> r
pow1p :: Multiplicative r => r -> Natural -> r
productWith1 :: (Multiplicative r, Foldable1 f) => (a -> r) -> f a -> r
pow1pIntegral :: (Integral r, Integral n) => r -> n -> r
product1 :: (Foldable1 f, Multiplicative r) => f r -> r

-- | A pair of an additive abelian semigroup, and a multiplicative
--   semigroup, with the distributive laws:
--   
--   <pre>
--   a(b + c) = ab + ac -- left distribution (we are a LeftNearSemiring)
--   (a + b)c = ac + bc -- right distribution (we are a [Right]NearSemiring)
--   </pre>
--   
--   Common notation includes the laws for additive and multiplicative
--   identity in semiring.
--   
--   If you want that, look at <tt>Rig</tt> instead.
--   
--   Ideally we'd use the cyclic definition:
--   
--   <pre>
--   class (LeftModule r r, RightModule r r, Additive r, Abelian r, Multiplicative r) =&gt; Semiring r
--   </pre>
--   
--   to enforce that every semiring r is an r-module over itself, but
--   Haskell doesn't like that.
class (Additive r, Abelian r, Multiplicative r) => Semiring r
class (Semiring r, Additive m) => LeftModule r m
(.*) :: LeftModule r m => r -> m -> m
class (Semiring r, Additive m) => RightModule r m
(*.) :: RightModule r m => m -> r -> m
class (LeftModule r m, RightModule r m) => Module r m

-- | An additive monoid
--   
--   <pre>
--   zero + a = a = a + zero
--   </pre>
class (LeftModule Natural m, RightModule Natural m) => Monoidal m
zero :: Monoidal m => m
sinnum :: Monoidal m => Natural -> m -> m
sumWith :: (Monoidal m, Foldable f) => (a -> m) -> f a -> m
sum :: (Foldable f, Monoidal m) => f m -> m
sinnumIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r

-- | An associative algebra built with a free module over a semiring
class Semiring r => Algebra r a
mult :: Algebra r a => (a -> a -> r) -> a -> r
class Semiring r => Coalgebra r c
comult :: Coalgebra r c => (c -> r) -> c -> c -> r
instance Numeric.Algebra.Class.Monoidal GHC.Types.Bool
instance Numeric.Algebra.Class.Monoidal GHC.Natural.Natural
instance Numeric.Algebra.Class.Monoidal GHC.Integer.Type.Integer
instance Numeric.Algebra.Class.Monoidal GHC.Types.Int
instance Numeric.Algebra.Class.Monoidal GHC.Int.Int8
instance Numeric.Algebra.Class.Monoidal GHC.Int.Int16
instance Numeric.Algebra.Class.Monoidal GHC.Int.Int32
instance Numeric.Algebra.Class.Monoidal GHC.Int.Int64
instance Numeric.Algebra.Class.Monoidal GHC.Types.Word
instance Numeric.Algebra.Class.Monoidal GHC.Word.Word8
instance Numeric.Algebra.Class.Monoidal GHC.Word.Word16
instance Numeric.Algebra.Class.Monoidal GHC.Word.Word32
instance Numeric.Algebra.Class.Monoidal GHC.Word.Word64
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (e -> r)
instance Numeric.Algebra.Class.Monoidal ()
instance (Numeric.Algebra.Class.Monoidal a, Numeric.Algebra.Class.Monoidal b) => Numeric.Algebra.Class.Monoidal (a, b)
instance (Numeric.Algebra.Class.Monoidal a, Numeric.Algebra.Class.Monoidal b, Numeric.Algebra.Class.Monoidal c) => Numeric.Algebra.Class.Monoidal (a, b, c)
instance (Numeric.Algebra.Class.Monoidal a, Numeric.Algebra.Class.Monoidal b, Numeric.Algebra.Class.Monoidal c, Numeric.Algebra.Class.Monoidal d) => Numeric.Algebra.Class.Monoidal (a, b, c, d)
instance (Numeric.Algebra.Class.Monoidal a, Numeric.Algebra.Class.Monoidal b, Numeric.Algebra.Class.Monoidal c, Numeric.Algebra.Class.Monoidal d, Numeric.Algebra.Class.Monoidal e) => Numeric.Algebra.Class.Monoidal (a, b, c, d, e)
instance (Numeric.Algebra.Class.LeftModule r m, Numeric.Algebra.Class.RightModule r m) => Numeric.Algebra.Class.Module r m
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Types.Bool
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Natural.Natural
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Integer.Type.Integer
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer GHC.Integer.Type.Integer
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Types.Int
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer GHC.Types.Int
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Int.Int8
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer GHC.Int.Int8
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Int.Int16
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer GHC.Int.Int16
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Int.Int32
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer GHC.Int.Int32
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Int.Int64
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer GHC.Int.Int64
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Types.Word
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer GHC.Types.Word
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Word.Word8
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer GHC.Word.Word8
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Word.Word16
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer GHC.Word.Word16
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Word.Word32
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer GHC.Word.Word32
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural GHC.Word.Word64
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer GHC.Word.Word64
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.RightModule r ()
instance Numeric.Algebra.Class.RightModule r m => Numeric.Algebra.Class.RightModule r (e -> m)
instance Numeric.Additive.Class.Additive m => Numeric.Algebra.Class.RightModule () m
instance (Numeric.Algebra.Class.RightModule r a, Numeric.Algebra.Class.RightModule r b) => Numeric.Algebra.Class.RightModule r (a, b)
instance (Numeric.Algebra.Class.RightModule r a, Numeric.Algebra.Class.RightModule r b, Numeric.Algebra.Class.RightModule r c) => Numeric.Algebra.Class.RightModule r (a, b, c)
instance (Numeric.Algebra.Class.RightModule r a, Numeric.Algebra.Class.RightModule r b, Numeric.Algebra.Class.RightModule r c, Numeric.Algebra.Class.RightModule r d) => Numeric.Algebra.Class.RightModule r (a, b, c, d)
instance (Numeric.Algebra.Class.RightModule r a, Numeric.Algebra.Class.RightModule r b, Numeric.Algebra.Class.RightModule r c, Numeric.Algebra.Class.RightModule r d, Numeric.Algebra.Class.RightModule r e) => Numeric.Algebra.Class.RightModule r (a, b, c, d, e)
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Types.Bool
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Natural.Natural
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Integer.Type.Integer
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer GHC.Integer.Type.Integer
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Types.Int
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer GHC.Types.Int
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Int.Int8
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer GHC.Int.Int8
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Int.Int16
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer GHC.Int.Int16
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Int.Int32
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer GHC.Int.Int32
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Int.Int64
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer GHC.Int.Int64
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Types.Word
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer GHC.Types.Word
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Word.Word8
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer GHC.Word.Word8
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Word.Word16
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer GHC.Word.Word16
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Word.Word32
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer GHC.Word.Word32
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural GHC.Word.Word64
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer GHC.Word.Word64
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.LeftModule r ()
instance Numeric.Algebra.Class.LeftModule r m => Numeric.Algebra.Class.LeftModule r (e -> m)
instance Numeric.Additive.Class.Additive m => Numeric.Algebra.Class.LeftModule () m
instance (Numeric.Algebra.Class.LeftModule r a, Numeric.Algebra.Class.LeftModule r b) => Numeric.Algebra.Class.LeftModule r (a, b)
instance (Numeric.Algebra.Class.LeftModule r a, Numeric.Algebra.Class.LeftModule r b, Numeric.Algebra.Class.LeftModule r c) => Numeric.Algebra.Class.LeftModule r (a, b, c)
instance (Numeric.Algebra.Class.LeftModule r a, Numeric.Algebra.Class.LeftModule r b, Numeric.Algebra.Class.LeftModule r c, Numeric.Algebra.Class.LeftModule r d) => Numeric.Algebra.Class.LeftModule r (a, b, c, d)
instance (Numeric.Algebra.Class.LeftModule r a, Numeric.Algebra.Class.LeftModule r b, Numeric.Algebra.Class.LeftModule r c, Numeric.Algebra.Class.LeftModule r d, Numeric.Algebra.Class.LeftModule r e) => Numeric.Algebra.Class.LeftModule r (a, b, c, d, e)
instance Numeric.Algebra.Class.Algebra r m => Numeric.Algebra.Class.Coalgebra r (m -> r)
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.Coalgebra r ()
instance (Numeric.Algebra.Class.Coalgebra r a, Numeric.Algebra.Class.Coalgebra r b) => Numeric.Algebra.Class.Coalgebra r (a, b)
instance (Numeric.Algebra.Class.Coalgebra r a, Numeric.Algebra.Class.Coalgebra r b, Numeric.Algebra.Class.Coalgebra r c) => Numeric.Algebra.Class.Coalgebra r (a, b, c)
instance (Numeric.Algebra.Class.Coalgebra r a, Numeric.Algebra.Class.Coalgebra r b, Numeric.Algebra.Class.Coalgebra r c, Numeric.Algebra.Class.Coalgebra r d) => Numeric.Algebra.Class.Coalgebra r (a, b, c, d)
instance (Numeric.Algebra.Class.Coalgebra r a, Numeric.Algebra.Class.Coalgebra r b, Numeric.Algebra.Class.Coalgebra r c, Numeric.Algebra.Class.Coalgebra r d, Numeric.Algebra.Class.Coalgebra r e) => Numeric.Algebra.Class.Coalgebra r (a, b, c, d, e)
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.Coalgebra r [a]
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.Coalgebra r (Data.Sequence.Internal.Seq a)
instance (Numeric.Algebra.Class.Semiring r, GHC.Classes.Ord a) => Numeric.Algebra.Class.Coalgebra r (Data.Set.Internal.Set a)
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.Coalgebra r Data.IntSet.Internal.IntSet
instance (Numeric.Algebra.Class.Semiring r, GHC.Classes.Ord a, Numeric.Additive.Class.Additive b) => Numeric.Algebra.Class.Coalgebra r (Data.Map.Internal.Map a b)
instance (Numeric.Algebra.Class.Semiring r, Numeric.Additive.Class.Additive b) => Numeric.Algebra.Class.Coalgebra r (Data.IntMap.Internal.IntMap b)
instance Numeric.Algebra.Class.Algebra r a => Numeric.Algebra.Class.Multiplicative (a -> r)
instance Numeric.Algebra.Class.Algebra r a => Numeric.Algebra.Class.Semiring (a -> r)
instance Numeric.Algebra.Class.Algebra () a
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.Algebra r [a]
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.Algebra r (Data.Sequence.Internal.Seq a)
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.Algebra r ()
instance (Numeric.Algebra.Class.Semiring r, GHC.Classes.Ord a) => Numeric.Algebra.Class.Algebra r (Data.Set.Internal.Set a)
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.Algebra r Data.IntSet.Internal.IntSet
instance (Numeric.Algebra.Class.Algebra r a, Numeric.Algebra.Class.Algebra r b) => Numeric.Algebra.Class.Algebra r (a, b)
instance (Numeric.Algebra.Class.Algebra r a, Numeric.Algebra.Class.Algebra r b, Numeric.Algebra.Class.Algebra r c) => Numeric.Algebra.Class.Algebra r (a, b, c)
instance (Numeric.Algebra.Class.Algebra r a, Numeric.Algebra.Class.Algebra r b, Numeric.Algebra.Class.Algebra r c, Numeric.Algebra.Class.Algebra r d) => Numeric.Algebra.Class.Algebra r (a, b, c, d)
instance (Numeric.Algebra.Class.Algebra r a, Numeric.Algebra.Class.Algebra r b, Numeric.Algebra.Class.Algebra r c, Numeric.Algebra.Class.Algebra r d, Numeric.Algebra.Class.Algebra r e) => Numeric.Algebra.Class.Algebra r (a, b, c, d, e)
instance Numeric.Algebra.Class.Semiring GHC.Integer.Type.Integer
instance Numeric.Algebra.Class.Semiring GHC.Natural.Natural
instance Numeric.Algebra.Class.Semiring GHC.Types.Bool
instance Numeric.Algebra.Class.Semiring GHC.Types.Int
instance Numeric.Algebra.Class.Semiring GHC.Int.Int8
instance Numeric.Algebra.Class.Semiring GHC.Int.Int16
instance Numeric.Algebra.Class.Semiring GHC.Int.Int32
instance Numeric.Algebra.Class.Semiring GHC.Int.Int64
instance Numeric.Algebra.Class.Semiring GHC.Types.Word
instance Numeric.Algebra.Class.Semiring GHC.Word.Word8
instance Numeric.Algebra.Class.Semiring GHC.Word.Word16
instance Numeric.Algebra.Class.Semiring GHC.Word.Word32
instance Numeric.Algebra.Class.Semiring GHC.Word.Word64
instance Numeric.Algebra.Class.Semiring ()
instance (Numeric.Algebra.Class.Semiring a, Numeric.Algebra.Class.Semiring b) => Numeric.Algebra.Class.Semiring (a, b)
instance (Numeric.Algebra.Class.Semiring a, Numeric.Algebra.Class.Semiring b, Numeric.Algebra.Class.Semiring c) => Numeric.Algebra.Class.Semiring (a, b, c)
instance (Numeric.Algebra.Class.Semiring a, Numeric.Algebra.Class.Semiring b, Numeric.Algebra.Class.Semiring c, Numeric.Algebra.Class.Semiring d) => Numeric.Algebra.Class.Semiring (a, b, c, d)
instance (Numeric.Algebra.Class.Semiring a, Numeric.Algebra.Class.Semiring b, Numeric.Algebra.Class.Semiring c, Numeric.Algebra.Class.Semiring d, Numeric.Algebra.Class.Semiring e) => Numeric.Algebra.Class.Semiring (a, b, c, d, e)
instance Numeric.Algebra.Class.Multiplicative GHC.Types.Bool
instance Numeric.Algebra.Class.Multiplicative GHC.Natural.Natural
instance Numeric.Algebra.Class.Multiplicative GHC.Integer.Type.Integer
instance Numeric.Algebra.Class.Multiplicative GHC.Types.Int
instance Numeric.Algebra.Class.Multiplicative GHC.Int.Int8
instance Numeric.Algebra.Class.Multiplicative GHC.Int.Int16
instance Numeric.Algebra.Class.Multiplicative GHC.Int.Int32
instance Numeric.Algebra.Class.Multiplicative GHC.Int.Int64
instance Numeric.Algebra.Class.Multiplicative GHC.Types.Word
instance Numeric.Algebra.Class.Multiplicative GHC.Word.Word8
instance Numeric.Algebra.Class.Multiplicative GHC.Word.Word16
instance Numeric.Algebra.Class.Multiplicative GHC.Word.Word32
instance Numeric.Algebra.Class.Multiplicative GHC.Word.Word64
instance Numeric.Algebra.Class.Multiplicative ()
instance (Numeric.Algebra.Class.Multiplicative a, Numeric.Algebra.Class.Multiplicative b) => Numeric.Algebra.Class.Multiplicative (a, b)
instance (Numeric.Algebra.Class.Multiplicative a, Numeric.Algebra.Class.Multiplicative b, Numeric.Algebra.Class.Multiplicative c) => Numeric.Algebra.Class.Multiplicative (a, b, c)
instance (Numeric.Algebra.Class.Multiplicative a, Numeric.Algebra.Class.Multiplicative b, Numeric.Algebra.Class.Multiplicative c, Numeric.Algebra.Class.Multiplicative d) => Numeric.Algebra.Class.Multiplicative (a, b, c, d)
instance (Numeric.Algebra.Class.Multiplicative a, Numeric.Algebra.Class.Multiplicative b, Numeric.Algebra.Class.Multiplicative c, Numeric.Algebra.Class.Multiplicative d, Numeric.Algebra.Class.Multiplicative e) => Numeric.Algebra.Class.Multiplicative (a, b, c, d, e)

module Numeric.Additive.Group
class (LeftModule Integer r, RightModule Integer r, Monoidal r) => Group r
(-) :: Group r => r -> r -> r
negate :: Group r => r -> r
subtract :: Group r => r -> r -> r
times :: (Group r, Integral n) => n -> r -> r
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (e -> r)
instance Numeric.Additive.Group.Group GHC.Integer.Type.Integer
instance Numeric.Additive.Group.Group GHC.Types.Int
instance Numeric.Additive.Group.Group GHC.Int.Int8
instance Numeric.Additive.Group.Group GHC.Int.Int16
instance Numeric.Additive.Group.Group GHC.Int.Int32
instance Numeric.Additive.Group.Group GHC.Int.Int64
instance Numeric.Additive.Group.Group GHC.Types.Word
instance Numeric.Additive.Group.Group GHC.Word.Word8
instance Numeric.Additive.Group.Group GHC.Word.Word16
instance Numeric.Additive.Group.Group GHC.Word.Word32
instance Numeric.Additive.Group.Group GHC.Word.Word64
instance Numeric.Additive.Group.Group ()
instance (Numeric.Additive.Group.Group a, Numeric.Additive.Group.Group b) => Numeric.Additive.Group.Group (a, b)
instance (Numeric.Additive.Group.Group a, Numeric.Additive.Group.Group b, Numeric.Additive.Group.Group c) => Numeric.Additive.Group.Group (a, b, c)
instance (Numeric.Additive.Group.Group a, Numeric.Additive.Group.Group b, Numeric.Additive.Group.Group c, Numeric.Additive.Group.Group d) => Numeric.Additive.Group.Group (a, b, c, d)
instance (Numeric.Additive.Group.Group a, Numeric.Additive.Group.Group b, Numeric.Additive.Group.Group c, Numeric.Additive.Group.Group d, Numeric.Additive.Group.Group e) => Numeric.Additive.Group.Group (a, b, c, d, e)

module Numeric.Algebra.Factorable

-- | `factorWith f c` returns a non-empty list containing `f a b` for all
--   `a, b` such that `a * b = c`.
--   
--   Results of factorWith f 0 are undefined and may result in either an
--   error or an infinite list.
class Multiplicative m => Factorable m
factorWith :: Factorable m => (m -> m -> r) -> m -> NonEmpty r
instance Numeric.Algebra.Factorable.Factorable GHC.Types.Bool
instance Numeric.Algebra.Factorable.Factorable ()
instance (Numeric.Algebra.Factorable.Factorable a, Numeric.Algebra.Factorable.Factorable b) => Numeric.Algebra.Factorable.Factorable (a, b)
instance (Numeric.Algebra.Factorable.Factorable a, Numeric.Algebra.Factorable.Factorable b, Numeric.Algebra.Factorable.Factorable c) => Numeric.Algebra.Factorable.Factorable (a, b, c)
instance (Numeric.Algebra.Factorable.Factorable a, Numeric.Algebra.Factorable.Factorable b, Numeric.Algebra.Factorable.Factorable c, Numeric.Algebra.Factorable.Factorable d) => Numeric.Algebra.Factorable.Factorable (a, b, c, d)
instance (Numeric.Algebra.Factorable.Factorable a, Numeric.Algebra.Factorable.Factorable b, Numeric.Algebra.Factorable.Factorable c, Numeric.Algebra.Factorable.Factorable d, Numeric.Algebra.Factorable.Factorable e) => Numeric.Algebra.Factorable.Factorable (a, b, c, d, e)

module Numeric.Algebra.Unital
class Multiplicative r => Unital r
one :: Unital r => r
pow :: Unital r => r -> Natural -> r
productWith :: (Unital r, Foldable f) => (a -> r) -> f a -> r
product :: (Foldable f, Unital r) => f r -> r

-- | An associative unital algebra over a semiring, built using a free
--   module
class Algebra r a => UnitalAlgebra r a
unit :: UnitalAlgebra r a => r -> a -> r
class Coalgebra r c => CounitalCoalgebra r c
counit :: CounitalCoalgebra r c => (c -> r) -> r

-- | A bialgebra is both a unital algebra and counital coalgebra where the
--   <a>mult</a> and <a>unit</a> are compatible in some sense with the
--   <a>comult</a> and <a>counit</a>. That is to say that <a>mult</a> and
--   <a>unit</a> are a coalgebra homomorphisms or (equivalently) that
--   <a>comult</a> and <a>counit</a> are an algebra homomorphisms.
class (UnitalAlgebra r a, CounitalCoalgebra r a) => Bialgebra r a
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Unital.Bialgebra r ()
instance (Numeric.Algebra.Unital.Bialgebra r a, Numeric.Algebra.Unital.Bialgebra r b) => Numeric.Algebra.Unital.Bialgebra r (a, b)
instance (Numeric.Algebra.Unital.Bialgebra r a, Numeric.Algebra.Unital.Bialgebra r b, Numeric.Algebra.Unital.Bialgebra r c) => Numeric.Algebra.Unital.Bialgebra r (a, b, c)
instance (Numeric.Algebra.Unital.Bialgebra r a, Numeric.Algebra.Unital.Bialgebra r b, Numeric.Algebra.Unital.Bialgebra r c, Numeric.Algebra.Unital.Bialgebra r d) => Numeric.Algebra.Unital.Bialgebra r (a, b, c, d)
instance (Numeric.Algebra.Unital.Bialgebra r a, Numeric.Algebra.Unital.Bialgebra r b, Numeric.Algebra.Unital.Bialgebra r c, Numeric.Algebra.Unital.Bialgebra r d, Numeric.Algebra.Unital.Bialgebra r e) => Numeric.Algebra.Unital.Bialgebra r (a, b, c, d, e)
instance (Numeric.Algebra.Class.Monoidal r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Unital.Bialgebra r [a]
instance (Numeric.Algebra.Class.Monoidal r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Unital.Bialgebra r (Data.Sequence.Internal.Seq a)
instance (Numeric.Algebra.Unital.Unital r, Numeric.Algebra.Unital.UnitalAlgebra r m) => Numeric.Algebra.Unital.CounitalCoalgebra r (m -> r)
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Unital.CounitalCoalgebra r ()
instance (Numeric.Algebra.Unital.CounitalCoalgebra r a, Numeric.Algebra.Unital.CounitalCoalgebra r b) => Numeric.Algebra.Unital.CounitalCoalgebra r (a, b)
instance (Numeric.Algebra.Unital.CounitalCoalgebra r a, Numeric.Algebra.Unital.CounitalCoalgebra r b, Numeric.Algebra.Unital.CounitalCoalgebra r c) => Numeric.Algebra.Unital.CounitalCoalgebra r (a, b, c)
instance (Numeric.Algebra.Unital.CounitalCoalgebra r a, Numeric.Algebra.Unital.CounitalCoalgebra r b, Numeric.Algebra.Unital.CounitalCoalgebra r c, Numeric.Algebra.Unital.CounitalCoalgebra r d) => Numeric.Algebra.Unital.CounitalCoalgebra r (a, b, c, d)
instance (Numeric.Algebra.Unital.CounitalCoalgebra r a, Numeric.Algebra.Unital.CounitalCoalgebra r b, Numeric.Algebra.Unital.CounitalCoalgebra r c, Numeric.Algebra.Unital.CounitalCoalgebra r d, Numeric.Algebra.Unital.CounitalCoalgebra r e) => Numeric.Algebra.Unital.CounitalCoalgebra r (a, b, c, d, e)
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Unital.CounitalCoalgebra r [a]
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Unital.CounitalCoalgebra r (Data.Sequence.Internal.Seq a)
instance (Numeric.Algebra.Unital.Unital r, Numeric.Algebra.Unital.UnitalAlgebra r a) => Numeric.Algebra.Unital.Unital (a -> r)
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Unital.UnitalAlgebra r ()
instance (Numeric.Algebra.Unital.UnitalAlgebra r a, Numeric.Algebra.Unital.UnitalAlgebra r b) => Numeric.Algebra.Unital.UnitalAlgebra r (a, b)
instance (Numeric.Algebra.Unital.UnitalAlgebra r a, Numeric.Algebra.Unital.UnitalAlgebra r b, Numeric.Algebra.Unital.UnitalAlgebra r c) => Numeric.Algebra.Unital.UnitalAlgebra r (a, b, c)
instance (Numeric.Algebra.Unital.UnitalAlgebra r a, Numeric.Algebra.Unital.UnitalAlgebra r b, Numeric.Algebra.Unital.UnitalAlgebra r c, Numeric.Algebra.Unital.UnitalAlgebra r d) => Numeric.Algebra.Unital.UnitalAlgebra r (a, b, c, d)
instance (Numeric.Algebra.Unital.UnitalAlgebra r a, Numeric.Algebra.Unital.UnitalAlgebra r b, Numeric.Algebra.Unital.UnitalAlgebra r c, Numeric.Algebra.Unital.UnitalAlgebra r d, Numeric.Algebra.Unital.UnitalAlgebra r e) => Numeric.Algebra.Unital.UnitalAlgebra r (a, b, c, d, e)
instance (Numeric.Algebra.Class.Monoidal r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Unital.UnitalAlgebra r [a]
instance (Numeric.Algebra.Class.Monoidal r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Unital.UnitalAlgebra r (Data.Sequence.Internal.Seq a)
instance Numeric.Algebra.Unital.Unital GHC.Types.Bool
instance Numeric.Algebra.Unital.Unital GHC.Integer.Type.Integer
instance Numeric.Algebra.Unital.Unital GHC.Types.Int
instance Numeric.Algebra.Unital.Unital GHC.Int.Int8
instance Numeric.Algebra.Unital.Unital GHC.Int.Int16
instance Numeric.Algebra.Unital.Unital GHC.Int.Int32
instance Numeric.Algebra.Unital.Unital GHC.Int.Int64
instance Numeric.Algebra.Unital.Unital GHC.Natural.Natural
instance Numeric.Algebra.Unital.Unital GHC.Types.Word
instance Numeric.Algebra.Unital.Unital GHC.Word.Word8
instance Numeric.Algebra.Unital.Unital GHC.Word.Word16
instance Numeric.Algebra.Unital.Unital GHC.Word.Word32
instance Numeric.Algebra.Unital.Unital GHC.Word.Word64
instance Numeric.Algebra.Unital.Unital ()
instance (Numeric.Algebra.Unital.Unital a, Numeric.Algebra.Unital.Unital b) => Numeric.Algebra.Unital.Unital (a, b)
instance (Numeric.Algebra.Unital.Unital a, Numeric.Algebra.Unital.Unital b, Numeric.Algebra.Unital.Unital c) => Numeric.Algebra.Unital.Unital (a, b, c)
instance (Numeric.Algebra.Unital.Unital a, Numeric.Algebra.Unital.Unital b, Numeric.Algebra.Unital.Unital c, Numeric.Algebra.Unital.Unital d) => Numeric.Algebra.Unital.Unital (a, b, c, d)
instance (Numeric.Algebra.Unital.Unital a, Numeric.Algebra.Unital.Unital b, Numeric.Algebra.Unital.Unital c, Numeric.Algebra.Unital.Unital d, Numeric.Algebra.Unital.Unital e) => Numeric.Algebra.Unital.Unital (a, b, c, d, e)

module Numeric.Algebra.Idempotent

-- | An multiplicative semigroup with idempotent multiplication.
--   
--   <pre>
--   a * a = a
--   </pre>
class Multiplicative r => Band r
pow1pBand :: r -> Natural -> r
powBand :: Unital r => r -> Natural -> r
class Algebra r a => IdempotentAlgebra r a
class Coalgebra r c => IdempotentCoalgebra r c
class (Bialgebra r h, IdempotentAlgebra r h, IdempotentCoalgebra r h) => IdempotentBialgebra r h
instance (Numeric.Algebra.Unital.Bialgebra r h, Numeric.Algebra.Idempotent.IdempotentAlgebra r h, Numeric.Algebra.Idempotent.IdempotentCoalgebra r h) => Numeric.Algebra.Idempotent.IdempotentBialgebra r h
instance (Numeric.Algebra.Class.Semiring r, Numeric.Algebra.Idempotent.Band r, GHC.Classes.Ord c) => Numeric.Algebra.Idempotent.IdempotentCoalgebra r (Data.Set.Internal.Set c)
instance (Numeric.Algebra.Class.Semiring r, Numeric.Algebra.Idempotent.Band r) => Numeric.Algebra.Idempotent.IdempotentCoalgebra r Data.IntSet.Internal.IntSet
instance (Numeric.Algebra.Class.Semiring r, Numeric.Algebra.Idempotent.Band r) => Numeric.Algebra.Idempotent.IdempotentCoalgebra r ()
instance (Numeric.Algebra.Idempotent.IdempotentCoalgebra r a, Numeric.Algebra.Idempotent.IdempotentCoalgebra r b) => Numeric.Algebra.Idempotent.IdempotentCoalgebra r (a, b)
instance (Numeric.Algebra.Idempotent.IdempotentCoalgebra r a, Numeric.Algebra.Idempotent.IdempotentCoalgebra r b, Numeric.Algebra.Idempotent.IdempotentCoalgebra r c) => Numeric.Algebra.Idempotent.IdempotentCoalgebra r (a, b, c)
instance (Numeric.Algebra.Idempotent.IdempotentCoalgebra r a, Numeric.Algebra.Idempotent.IdempotentCoalgebra r b, Numeric.Algebra.Idempotent.IdempotentCoalgebra r c, Numeric.Algebra.Idempotent.IdempotentCoalgebra r d) => Numeric.Algebra.Idempotent.IdempotentCoalgebra r (a, b, c, d)
instance (Numeric.Algebra.Idempotent.IdempotentCoalgebra r a, Numeric.Algebra.Idempotent.IdempotentCoalgebra r b, Numeric.Algebra.Idempotent.IdempotentCoalgebra r c, Numeric.Algebra.Idempotent.IdempotentCoalgebra r d, Numeric.Algebra.Idempotent.IdempotentCoalgebra r e) => Numeric.Algebra.Idempotent.IdempotentCoalgebra r (a, b, c, d, e)
instance (Numeric.Algebra.Class.Semiring r, Numeric.Algebra.Idempotent.Band r, GHC.Classes.Ord a) => Numeric.Algebra.Idempotent.IdempotentAlgebra r (Data.Set.Internal.Set a)
instance (Numeric.Algebra.Class.Semiring r, Numeric.Algebra.Idempotent.Band r) => Numeric.Algebra.Idempotent.IdempotentAlgebra r Data.IntSet.Internal.IntSet
instance (Numeric.Algebra.Class.Semiring r, Numeric.Algebra.Idempotent.Band r) => Numeric.Algebra.Idempotent.IdempotentAlgebra r ()
instance (Numeric.Algebra.Idempotent.IdempotentAlgebra r a, Numeric.Algebra.Idempotent.IdempotentAlgebra r b) => Numeric.Algebra.Idempotent.IdempotentAlgebra r (a, b)
instance (Numeric.Algebra.Idempotent.IdempotentAlgebra r a, Numeric.Algebra.Idempotent.IdempotentAlgebra r b, Numeric.Algebra.Idempotent.IdempotentAlgebra r c) => Numeric.Algebra.Idempotent.IdempotentAlgebra r (a, b, c)
instance (Numeric.Algebra.Idempotent.IdempotentAlgebra r a, Numeric.Algebra.Idempotent.IdempotentAlgebra r b, Numeric.Algebra.Idempotent.IdempotentAlgebra r c, Numeric.Algebra.Idempotent.IdempotentAlgebra r d) => Numeric.Algebra.Idempotent.IdempotentAlgebra r (a, b, c, d)
instance (Numeric.Algebra.Idempotent.IdempotentAlgebra r a, Numeric.Algebra.Idempotent.IdempotentAlgebra r b, Numeric.Algebra.Idempotent.IdempotentAlgebra r c, Numeric.Algebra.Idempotent.IdempotentAlgebra r d, Numeric.Algebra.Idempotent.IdempotentAlgebra r e) => Numeric.Algebra.Idempotent.IdempotentAlgebra r (a, b, c, d, e)
instance Numeric.Algebra.Idempotent.Band ()
instance Numeric.Algebra.Idempotent.Band GHC.Types.Bool
instance (Numeric.Algebra.Idempotent.Band a, Numeric.Algebra.Idempotent.Band b) => Numeric.Algebra.Idempotent.Band (a, b)
instance (Numeric.Algebra.Idempotent.Band a, Numeric.Algebra.Idempotent.Band b, Numeric.Algebra.Idempotent.Band c) => Numeric.Algebra.Idempotent.Band (a, b, c)
instance (Numeric.Algebra.Idempotent.Band a, Numeric.Algebra.Idempotent.Band b, Numeric.Algebra.Idempotent.Band c, Numeric.Algebra.Idempotent.Band d) => Numeric.Algebra.Idempotent.Band (a, b, c, d)
instance (Numeric.Algebra.Idempotent.Band a, Numeric.Algebra.Idempotent.Band b, Numeric.Algebra.Idempotent.Band c, Numeric.Algebra.Idempotent.Band d, Numeric.Algebra.Idempotent.Band e) => Numeric.Algebra.Idempotent.Band (a, b, c, d, e)

module Numeric.Algebra.Hopf

-- | A HopfAlgebra algebra on a semiring, where the module is free.
--   
--   When <tt>antipode . antipode = id</tt> and antipode is an
--   antihomomorphism then we are an InvolutiveBialgebra with <tt>inv =
--   antipode</tt> as well
class Bialgebra r h => HopfAlgebra r h
antipode :: HopfAlgebra r h => (h -> r) -> h -> r
instance (Numeric.Algebra.Hopf.HopfAlgebra r a, Numeric.Algebra.Hopf.HopfAlgebra r b) => Numeric.Algebra.Hopf.HopfAlgebra r (a, b)
instance (Numeric.Algebra.Hopf.HopfAlgebra r a, Numeric.Algebra.Hopf.HopfAlgebra r b, Numeric.Algebra.Hopf.HopfAlgebra r c) => Numeric.Algebra.Hopf.HopfAlgebra r (a, b, c)
instance (Numeric.Algebra.Hopf.HopfAlgebra r a, Numeric.Algebra.Hopf.HopfAlgebra r b, Numeric.Algebra.Hopf.HopfAlgebra r c, Numeric.Algebra.Hopf.HopfAlgebra r d) => Numeric.Algebra.Hopf.HopfAlgebra r (a, b, c, d)
instance (Numeric.Algebra.Hopf.HopfAlgebra r a, Numeric.Algebra.Hopf.HopfAlgebra r b, Numeric.Algebra.Hopf.HopfAlgebra r c, Numeric.Algebra.Hopf.HopfAlgebra r d, Numeric.Algebra.Hopf.HopfAlgebra r e) => Numeric.Algebra.Hopf.HopfAlgebra r (a, b, c, d, e)

module Numeric.Algebra.Division
class Unital r => Division r
recip :: Division r => r -> r
(/) :: Division r => r -> r -> r
(\\) :: Division r => r -> r -> r
(^) :: (Division r, Integral n) => r -> n -> r
class UnitalAlgebra r a => DivisionAlgebra r a
recipriocal :: DivisionAlgebra r a => (a -> r) -> a -> r
instance (Numeric.Algebra.Unital.Unital r, Numeric.Algebra.Division.DivisionAlgebra r a) => Numeric.Algebra.Division.Division (a -> r)
instance Numeric.Algebra.Division.Division ()
instance (Numeric.Algebra.Division.Division a, Numeric.Algebra.Division.Division b) => Numeric.Algebra.Division.Division (a, b)
instance (Numeric.Algebra.Division.Division a, Numeric.Algebra.Division.Division b, Numeric.Algebra.Division.Division c) => Numeric.Algebra.Division.Division (a, b, c)
instance (Numeric.Algebra.Division.Division a, Numeric.Algebra.Division.Division b, Numeric.Algebra.Division.Division c, Numeric.Algebra.Division.Division d) => Numeric.Algebra.Division.Division (a, b, c, d)
instance (Numeric.Algebra.Division.Division a, Numeric.Algebra.Division.Division b, Numeric.Algebra.Division.Division c, Numeric.Algebra.Division.Division d, Numeric.Algebra.Division.Division e) => Numeric.Algebra.Division.Division (a, b, c, d, e)

module Numeric.Algebra.Commutative

-- | A commutative multiplicative semigroup
class Multiplicative r => Commutative r
class Algebra r a => CommutativeAlgebra r a
class Coalgebra r c => CocommutativeCoalgebra r c
class (Bialgebra r h, CommutativeAlgebra r h, CocommutativeCoalgebra r h) => CommutativeBialgebra r h
instance (Numeric.Algebra.Unital.Bialgebra r h, Numeric.Algebra.Commutative.CommutativeAlgebra r h, Numeric.Algebra.Commutative.CocommutativeCoalgebra r h) => Numeric.Algebra.Commutative.CommutativeBialgebra r h
instance Numeric.Algebra.Commutative.CommutativeAlgebra r m => Numeric.Algebra.Commutative.CocommutativeCoalgebra r (m -> r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Commutative.CocommutativeCoalgebra r ()
instance (Numeric.Algebra.Commutative.CocommutativeCoalgebra r a, Numeric.Algebra.Commutative.CocommutativeCoalgebra r b) => Numeric.Algebra.Commutative.CocommutativeCoalgebra r (a, b)
instance (Numeric.Algebra.Commutative.CocommutativeCoalgebra r a, Numeric.Algebra.Commutative.CocommutativeCoalgebra r b, Numeric.Algebra.Commutative.CocommutativeCoalgebra r c) => Numeric.Algebra.Commutative.CocommutativeCoalgebra r (a, b, c)
instance (Numeric.Algebra.Commutative.CocommutativeCoalgebra r a, Numeric.Algebra.Commutative.CocommutativeCoalgebra r b, Numeric.Algebra.Commutative.CocommutativeCoalgebra r c, Numeric.Algebra.Commutative.CocommutativeCoalgebra r d) => Numeric.Algebra.Commutative.CocommutativeCoalgebra r (a, b, c, d)
instance (Numeric.Algebra.Commutative.CocommutativeCoalgebra r a, Numeric.Algebra.Commutative.CocommutativeCoalgebra r b, Numeric.Algebra.Commutative.CocommutativeCoalgebra r c, Numeric.Algebra.Commutative.CocommutativeCoalgebra r d, Numeric.Algebra.Commutative.CocommutativeCoalgebra r e) => Numeric.Algebra.Commutative.CocommutativeCoalgebra r (a, b, c, d, e)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r, GHC.Classes.Ord a) => Numeric.Algebra.Commutative.CocommutativeCoalgebra r (Data.Set.Internal.Set a)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Commutative.CocommutativeCoalgebra r Data.IntSet.Internal.IntSet
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r, GHC.Classes.Ord a, Numeric.Additive.Class.Abelian b) => Numeric.Algebra.Commutative.CocommutativeCoalgebra r (Data.Map.Internal.Map a b)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r, Numeric.Additive.Class.Abelian b) => Numeric.Algebra.Commutative.CocommutativeCoalgebra r (Data.IntMap.Internal.IntMap b)
instance Numeric.Algebra.Commutative.CommutativeAlgebra r a => Numeric.Algebra.Commutative.Commutative (a -> r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Commutative.CommutativeAlgebra r ()
instance (Numeric.Algebra.Commutative.CommutativeAlgebra r a, Numeric.Algebra.Commutative.CommutativeAlgebra r b) => Numeric.Algebra.Commutative.CommutativeAlgebra r (a, b)
instance (Numeric.Algebra.Commutative.CommutativeAlgebra r a, Numeric.Algebra.Commutative.CommutativeAlgebra r b, Numeric.Algebra.Commutative.CommutativeAlgebra r c) => Numeric.Algebra.Commutative.CommutativeAlgebra r (a, b, c)
instance (Numeric.Algebra.Commutative.CommutativeAlgebra r a, Numeric.Algebra.Commutative.CommutativeAlgebra r b, Numeric.Algebra.Commutative.CommutativeAlgebra r c, Numeric.Algebra.Commutative.CommutativeAlgebra r d) => Numeric.Algebra.Commutative.CommutativeAlgebra r (a, b, c, d)
instance (Numeric.Algebra.Commutative.CommutativeAlgebra r a, Numeric.Algebra.Commutative.CommutativeAlgebra r b, Numeric.Algebra.Commutative.CommutativeAlgebra r c, Numeric.Algebra.Commutative.CommutativeAlgebra r d, Numeric.Algebra.Commutative.CommutativeAlgebra r e) => Numeric.Algebra.Commutative.CommutativeAlgebra r (a, b, c, d, e)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r, GHC.Classes.Ord a) => Numeric.Algebra.Commutative.CommutativeAlgebra r (Data.Set.Internal.Set a)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Commutative.CommutativeAlgebra r Data.IntSet.Internal.IntSet
instance Numeric.Algebra.Commutative.Commutative ()
instance Numeric.Algebra.Commutative.Commutative GHC.Types.Bool
instance Numeric.Algebra.Commutative.Commutative GHC.Integer.Type.Integer
instance Numeric.Algebra.Commutative.Commutative GHC.Types.Int
instance Numeric.Algebra.Commutative.Commutative GHC.Int.Int8
instance Numeric.Algebra.Commutative.Commutative GHC.Int.Int16
instance Numeric.Algebra.Commutative.Commutative GHC.Int.Int32
instance Numeric.Algebra.Commutative.Commutative GHC.Int.Int64
instance Numeric.Algebra.Commutative.Commutative GHC.Natural.Natural
instance Numeric.Algebra.Commutative.Commutative GHC.Types.Word
instance Numeric.Algebra.Commutative.Commutative GHC.Word.Word8
instance Numeric.Algebra.Commutative.Commutative GHC.Word.Word16
instance Numeric.Algebra.Commutative.Commutative GHC.Word.Word32
instance Numeric.Algebra.Commutative.Commutative GHC.Word.Word64
instance (Numeric.Algebra.Commutative.Commutative a, Numeric.Algebra.Commutative.Commutative b) => Numeric.Algebra.Commutative.Commutative (a, b)
instance (Numeric.Algebra.Commutative.Commutative a, Numeric.Algebra.Commutative.Commutative b, Numeric.Algebra.Commutative.Commutative c) => Numeric.Algebra.Commutative.Commutative (a, b, c)
instance (Numeric.Algebra.Commutative.Commutative a, Numeric.Algebra.Commutative.Commutative b, Numeric.Algebra.Commutative.Commutative c, Numeric.Algebra.Commutative.Commutative d) => Numeric.Algebra.Commutative.Commutative (a, b, c, d)
instance (Numeric.Algebra.Commutative.Commutative a, Numeric.Algebra.Commutative.Commutative b, Numeric.Algebra.Commutative.Commutative c, Numeric.Algebra.Commutative.Commutative d, Numeric.Algebra.Commutative.Commutative e) => Numeric.Algebra.Commutative.Commutative (a, b, c, d, e)

module Numeric.Algebra.Involutive

-- | An semigroup with involution
--   
--   <pre>
--   adjoint a * adjoint b = adjoint (b * a)
--   </pre>
class Multiplicative r => InvolutiveMultiplication r
adjoint :: InvolutiveMultiplication r => r -> r

-- | adjoint (x + y) = adjoint x + adjoint y
class (Semiring r, InvolutiveMultiplication r) => InvolutiveSemiring r
class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a
inv :: InvolutiveAlgebra r a => (a -> r) -> a -> r
class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c
coinv :: InvolutiveCoalgebra r c => (c -> r) -> c -> r
class (Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h

-- | <pre>
--   adjoint = id
--   </pre>
class (Commutative r, InvolutiveMultiplication r) => TriviallyInvolutive r
class (CommutativeAlgebra r a, TriviallyInvolutive r, InvolutiveAlgebra r a) => TriviallyInvolutiveAlgebra r a
class (CocommutativeCoalgebra r a, TriviallyInvolutive r, InvolutiveCoalgebra r a) => TriviallyInvolutiveCoalgebra r a
class (InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h
instance (Numeric.Algebra.Involutive.InvolutiveBialgebra r h, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r h, Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r h) => Numeric.Algebra.Involutive.TriviallyInvolutiveBialgebra r h
instance (Numeric.Algebra.Unital.Bialgebra r h, Numeric.Algebra.Involutive.InvolutiveAlgebra r h, Numeric.Algebra.Involutive.InvolutiveCoalgebra r h) => Numeric.Algebra.Involutive.InvolutiveBialgebra r h
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r ()
instance (Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r a, Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r b) => Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r (a, b)
instance (Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r a, Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r b, Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r c) => Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r (a, b, c)
instance (Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r a, Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r b, Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r c, Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r d) => Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r (a, b, c, d)
instance (Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r a, Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r b, Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r c, Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r d, Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r e) => Numeric.Algebra.Involutive.TriviallyInvolutiveCoalgebra r (a, b, c, d, e)
instance Numeric.Algebra.Involutive.InvolutiveSemiring r => Numeric.Algebra.Involutive.InvolutiveCoalgebra r ()
instance (Numeric.Algebra.Involutive.InvolutiveCoalgebra r a, Numeric.Algebra.Involutive.InvolutiveCoalgebra r b) => Numeric.Algebra.Involutive.InvolutiveCoalgebra r (a, b)
instance (Numeric.Algebra.Involutive.InvolutiveCoalgebra r a, Numeric.Algebra.Involutive.InvolutiveCoalgebra r b, Numeric.Algebra.Involutive.InvolutiveCoalgebra r c) => Numeric.Algebra.Involutive.InvolutiveCoalgebra r (a, b, c)
instance (Numeric.Algebra.Involutive.InvolutiveCoalgebra r a, Numeric.Algebra.Involutive.InvolutiveCoalgebra r b, Numeric.Algebra.Involutive.InvolutiveCoalgebra r c, Numeric.Algebra.Involutive.InvolutiveCoalgebra r d) => Numeric.Algebra.Involutive.InvolutiveCoalgebra r (a, b, c, d)
instance (Numeric.Algebra.Involutive.InvolutiveCoalgebra r a, Numeric.Algebra.Involutive.InvolutiveCoalgebra r b, Numeric.Algebra.Involutive.InvolutiveCoalgebra r c, Numeric.Algebra.Involutive.InvolutiveCoalgebra r d, Numeric.Algebra.Involutive.InvolutiveCoalgebra r e) => Numeric.Algebra.Involutive.InvolutiveCoalgebra r (a, b, c, d, e)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r a) => Numeric.Algebra.Involutive.TriviallyInvolutive (a -> r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r ()
instance (Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r a, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r b) => Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r (a, b)
instance (Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r a, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r b, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r c) => Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r (a, b, c)
instance (Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r a, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r b, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r c, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r d) => Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r (a, b, c, d)
instance (Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r a, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r b, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r c, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r d, Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r e) => Numeric.Algebra.Involutive.TriviallyInvolutiveAlgebra r (a, b, c, d, e)
instance Numeric.Algebra.Involutive.InvolutiveAlgebra r h => Numeric.Algebra.Involutive.InvolutiveMultiplication (h -> r)
instance Numeric.Algebra.Involutive.InvolutiveSemiring r => Numeric.Algebra.Involutive.InvolutiveAlgebra r ()
instance (Numeric.Algebra.Involutive.InvolutiveAlgebra r a, Numeric.Algebra.Involutive.InvolutiveAlgebra r b) => Numeric.Algebra.Involutive.InvolutiveAlgebra r (a, b)
instance (Numeric.Algebra.Involutive.InvolutiveAlgebra r a, Numeric.Algebra.Involutive.InvolutiveAlgebra r b, Numeric.Algebra.Involutive.InvolutiveAlgebra r c) => Numeric.Algebra.Involutive.InvolutiveAlgebra r (a, b, c)
instance (Numeric.Algebra.Involutive.InvolutiveAlgebra r a, Numeric.Algebra.Involutive.InvolutiveAlgebra r b, Numeric.Algebra.Involutive.InvolutiveAlgebra r c, Numeric.Algebra.Involutive.InvolutiveAlgebra r d) => Numeric.Algebra.Involutive.InvolutiveAlgebra r (a, b, c, d)
instance (Numeric.Algebra.Involutive.InvolutiveAlgebra r a, Numeric.Algebra.Involutive.InvolutiveAlgebra r b, Numeric.Algebra.Involutive.InvolutiveAlgebra r c, Numeric.Algebra.Involutive.InvolutiveAlgebra r d, Numeric.Algebra.Involutive.InvolutiveAlgebra r e) => Numeric.Algebra.Involutive.InvolutiveAlgebra r (a, b, c, d, e)
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Types.Bool
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Types.Int
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Integer.Type.Integer
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Int.Int8
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Int.Int16
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Int.Int32
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Int.Int64
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Types.Word
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Natural.Natural
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Word.Word8
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Word.Word16
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Word.Word32
instance Numeric.Algebra.Involutive.TriviallyInvolutive GHC.Word.Word64
instance Numeric.Algebra.Involutive.TriviallyInvolutive ()
instance (Numeric.Algebra.Involutive.TriviallyInvolutive a, Numeric.Algebra.Involutive.TriviallyInvolutive b) => Numeric.Algebra.Involutive.TriviallyInvolutive (a, b)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive a, Numeric.Algebra.Involutive.TriviallyInvolutive b, Numeric.Algebra.Involutive.TriviallyInvolutive c) => Numeric.Algebra.Involutive.TriviallyInvolutive (a, b, c)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive a, Numeric.Algebra.Involutive.TriviallyInvolutive b, Numeric.Algebra.Involutive.TriviallyInvolutive c, Numeric.Algebra.Involutive.TriviallyInvolutive d) => Numeric.Algebra.Involutive.TriviallyInvolutive (a, b, c, d)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive a, Numeric.Algebra.Involutive.TriviallyInvolutive b, Numeric.Algebra.Involutive.TriviallyInvolutive c, Numeric.Algebra.Involutive.TriviallyInvolutive d, Numeric.Algebra.Involutive.TriviallyInvolutive e) => Numeric.Algebra.Involutive.TriviallyInvolutive (a, b, c, d, e)
instance Numeric.Algebra.Involutive.InvolutiveSemiring ()
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Types.Bool
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Integer.Type.Integer
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Types.Int
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Int.Int8
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Int.Int16
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Int.Int32
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Int.Int64
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Natural.Natural
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Types.Word
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Word.Word8
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Word.Word16
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Word.Word32
instance Numeric.Algebra.Involutive.InvolutiveSemiring GHC.Word.Word64
instance (Numeric.Algebra.Involutive.InvolutiveSemiring a, Numeric.Algebra.Involutive.InvolutiveSemiring b) => Numeric.Algebra.Involutive.InvolutiveSemiring (a, b)
instance (Numeric.Algebra.Involutive.InvolutiveSemiring a, Numeric.Algebra.Involutive.InvolutiveSemiring b, Numeric.Algebra.Involutive.InvolutiveSemiring c) => Numeric.Algebra.Involutive.InvolutiveSemiring (a, b, c)
instance (Numeric.Algebra.Involutive.InvolutiveSemiring a, Numeric.Algebra.Involutive.InvolutiveSemiring b, Numeric.Algebra.Involutive.InvolutiveSemiring c, Numeric.Algebra.Involutive.InvolutiveSemiring d) => Numeric.Algebra.Involutive.InvolutiveSemiring (a, b, c, d)
instance (Numeric.Algebra.Involutive.InvolutiveSemiring a, Numeric.Algebra.Involutive.InvolutiveSemiring b, Numeric.Algebra.Involutive.InvolutiveSemiring c, Numeric.Algebra.Involutive.InvolutiveSemiring d, Numeric.Algebra.Involutive.InvolutiveSemiring e) => Numeric.Algebra.Involutive.InvolutiveSemiring (a, b, c, d, e)
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Types.Int
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Integer.Type.Integer
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Int.Int8
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Int.Int16
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Int.Int32
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Int.Int64
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Types.Bool
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Types.Word
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Natural.Natural
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Word.Word8
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Word.Word16
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Word.Word32
instance Numeric.Algebra.Involutive.InvolutiveMultiplication GHC.Word.Word64
instance Numeric.Algebra.Involutive.InvolutiveMultiplication ()
instance (Numeric.Algebra.Involutive.InvolutiveMultiplication a, Numeric.Algebra.Involutive.InvolutiveMultiplication b) => Numeric.Algebra.Involutive.InvolutiveMultiplication (a, b)
instance (Numeric.Algebra.Involutive.InvolutiveMultiplication a, Numeric.Algebra.Involutive.InvolutiveMultiplication b, Numeric.Algebra.Involutive.InvolutiveMultiplication c) => Numeric.Algebra.Involutive.InvolutiveMultiplication (a, b, c)
instance (Numeric.Algebra.Involutive.InvolutiveMultiplication a, Numeric.Algebra.Involutive.InvolutiveMultiplication b, Numeric.Algebra.Involutive.InvolutiveMultiplication c, Numeric.Algebra.Involutive.InvolutiveMultiplication d) => Numeric.Algebra.Involutive.InvolutiveMultiplication (a, b, c, d)
instance (Numeric.Algebra.Involutive.InvolutiveMultiplication a, Numeric.Algebra.Involutive.InvolutiveMultiplication b, Numeric.Algebra.Involutive.InvolutiveMultiplication c, Numeric.Algebra.Involutive.InvolutiveMultiplication d, Numeric.Algebra.Involutive.InvolutiveMultiplication e) => Numeric.Algebra.Involutive.InvolutiveMultiplication (a, b, c, d, e)

module Numeric.Band.Class

-- | An multiplicative semigroup with idempotent multiplication.
--   
--   <pre>
--   a * a = a
--   </pre>
class Multiplicative r => Band r
pow1pBand :: r -> Natural -> r
powBand :: Unital r => r -> Natural -> r

module Numeric.Band.Rectangular

-- | a rectangular band is a nowhere commutative semigroup. That is to say,
--   if ab = ba then a = b. From this it follows classically that aa = a
--   and that such a band is isomorphic to the following structure
data Rect i j
Rect :: i -> j -> Rect i j
instance (GHC.Read.Read j, GHC.Read.Read i) => GHC.Read.Read (Numeric.Band.Rectangular.Rect i j)
instance (GHC.Show.Show j, GHC.Show.Show i) => GHC.Show.Show (Numeric.Band.Rectangular.Rect i j)
instance (GHC.Classes.Ord j, GHC.Classes.Ord i) => GHC.Classes.Ord (Numeric.Band.Rectangular.Rect i j)
instance (GHC.Classes.Eq j, GHC.Classes.Eq i) => GHC.Classes.Eq (Numeric.Band.Rectangular.Rect i j)
instance Data.Semigroupoid.Semigroupoid Numeric.Band.Rectangular.Rect
instance Numeric.Algebra.Class.Multiplicative (Numeric.Band.Rectangular.Rect i j)
instance Numeric.Algebra.Idempotent.Band (Numeric.Band.Rectangular.Rect i j)

module Numeric.Decidable.Associates
class Unital r => DecidableAssociates r

-- | b is an associate of a if there exists a unit u such that b = a*u
--   
--   This relationship is symmetric because if u is a unit, u^-1 exists and
--   is a unit, so
--   
--   <pre>
--   b*u^-1 = a*u*u^-1 = a
--   </pre>
isAssociate :: DecidableAssociates r => r -> r -> Bool
isAssociateIntegral :: (Eq n, Num n) => n -> n -> Bool
isAssociateWhole :: Eq n => n -> n -> Bool
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Types.Bool
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Integer.Type.Integer
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Types.Int
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Int.Int8
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Int.Int16
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Int.Int32
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Int.Int64
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Natural.Natural
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Types.Word
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Word.Word8
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Word.Word16
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Word.Word32
instance Numeric.Decidable.Associates.DecidableAssociates GHC.Word.Word64
instance Numeric.Decidable.Associates.DecidableAssociates ()
instance (Numeric.Decidable.Associates.DecidableAssociates a, Numeric.Decidable.Associates.DecidableAssociates b) => Numeric.Decidable.Associates.DecidableAssociates (a, b)
instance (Numeric.Decidable.Associates.DecidableAssociates a, Numeric.Decidable.Associates.DecidableAssociates b, Numeric.Decidable.Associates.DecidableAssociates c) => Numeric.Decidable.Associates.DecidableAssociates (a, b, c)
instance (Numeric.Decidable.Associates.DecidableAssociates a, Numeric.Decidable.Associates.DecidableAssociates b, Numeric.Decidable.Associates.DecidableAssociates c, Numeric.Decidable.Associates.DecidableAssociates d) => Numeric.Decidable.Associates.DecidableAssociates (a, b, c, d)
instance (Numeric.Decidable.Associates.DecidableAssociates a, Numeric.Decidable.Associates.DecidableAssociates b, Numeric.Decidable.Associates.DecidableAssociates c, Numeric.Decidable.Associates.DecidableAssociates d, Numeric.Decidable.Associates.DecidableAssociates e) => Numeric.Decidable.Associates.DecidableAssociates (a, b, c, d, e)

module Numeric.Decidable.Units
class Unital r => DecidableUnits r
recipUnit :: DecidableUnits r => r -> Maybe r
isUnit :: DecidableUnits r => r -> Bool
(^?) :: (DecidableUnits r, Integral n) => r -> n -> Maybe r
recipUnitIntegral :: Integral r => r -> Maybe r
recipUnitWhole :: Integral r => r -> Maybe r
instance Numeric.Decidable.Units.DecidableUnits GHC.Types.Bool
instance Numeric.Decidable.Units.DecidableUnits GHC.Integer.Type.Integer
instance Numeric.Decidable.Units.DecidableUnits GHC.Types.Int
instance Numeric.Decidable.Units.DecidableUnits GHC.Int.Int8
instance Numeric.Decidable.Units.DecidableUnits GHC.Int.Int16
instance Numeric.Decidable.Units.DecidableUnits GHC.Int.Int32
instance Numeric.Decidable.Units.DecidableUnits GHC.Int.Int64
instance Numeric.Decidable.Units.DecidableUnits GHC.Natural.Natural
instance Numeric.Decidable.Units.DecidableUnits GHC.Types.Word
instance Numeric.Decidable.Units.DecidableUnits GHC.Word.Word8
instance Numeric.Decidable.Units.DecidableUnits GHC.Word.Word16
instance Numeric.Decidable.Units.DecidableUnits GHC.Word.Word32
instance Numeric.Decidable.Units.DecidableUnits GHC.Word.Word64
instance Numeric.Decidable.Units.DecidableUnits ()
instance (Numeric.Decidable.Units.DecidableUnits a, Numeric.Decidable.Units.DecidableUnits b) => Numeric.Decidable.Units.DecidableUnits (a, b)
instance (Numeric.Decidable.Units.DecidableUnits a, Numeric.Decidable.Units.DecidableUnits b, Numeric.Decidable.Units.DecidableUnits c) => Numeric.Decidable.Units.DecidableUnits (a, b, c)
instance (Numeric.Decidable.Units.DecidableUnits a, Numeric.Decidable.Units.DecidableUnits b, Numeric.Decidable.Units.DecidableUnits c, Numeric.Decidable.Units.DecidableUnits d) => Numeric.Decidable.Units.DecidableUnits (a, b, c, d)
instance (Numeric.Decidable.Units.DecidableUnits a, Numeric.Decidable.Units.DecidableUnits b, Numeric.Decidable.Units.DecidableUnits c, Numeric.Decidable.Units.DecidableUnits d, Numeric.Decidable.Units.DecidableUnits e) => Numeric.Decidable.Units.DecidableUnits (a, b, c, d, e)

module Numeric.Decidable.Zero
class Monoidal r => DecidableZero r
isZero :: DecidableZero r => r -> Bool
instance Numeric.Decidable.Zero.DecidableZero GHC.Types.Bool
instance Numeric.Decidable.Zero.DecidableZero GHC.Integer.Type.Integer
instance Numeric.Decidable.Zero.DecidableZero GHC.Types.Int
instance Numeric.Decidable.Zero.DecidableZero GHC.Int.Int8
instance Numeric.Decidable.Zero.DecidableZero GHC.Int.Int16
instance Numeric.Decidable.Zero.DecidableZero GHC.Int.Int32
instance Numeric.Decidable.Zero.DecidableZero GHC.Int.Int64
instance Numeric.Decidable.Zero.DecidableZero GHC.Natural.Natural
instance Numeric.Decidable.Zero.DecidableZero GHC.Types.Word
instance Numeric.Decidable.Zero.DecidableZero GHC.Word.Word8
instance Numeric.Decidable.Zero.DecidableZero GHC.Word.Word16
instance Numeric.Decidable.Zero.DecidableZero GHC.Word.Word32
instance Numeric.Decidable.Zero.DecidableZero GHC.Word.Word64
instance Numeric.Decidable.Zero.DecidableZero ()
instance (Numeric.Decidable.Zero.DecidableZero a, Numeric.Decidable.Zero.DecidableZero b) => Numeric.Decidable.Zero.DecidableZero (a, b)
instance (Numeric.Decidable.Zero.DecidableZero a, Numeric.Decidable.Zero.DecidableZero b, Numeric.Decidable.Zero.DecidableZero c) => Numeric.Decidable.Zero.DecidableZero (a, b, c)
instance (Numeric.Decidable.Zero.DecidableZero a, Numeric.Decidable.Zero.DecidableZero b, Numeric.Decidable.Zero.DecidableZero c, Numeric.Decidable.Zero.DecidableZero d) => Numeric.Decidable.Zero.DecidableZero (a, b, c, d)
instance (Numeric.Decidable.Zero.DecidableZero a, Numeric.Decidable.Zero.DecidableZero b, Numeric.Decidable.Zero.DecidableZero c, Numeric.Decidable.Zero.DecidableZero d, Numeric.Decidable.Zero.DecidableZero e) => Numeric.Decidable.Zero.DecidableZero (a, b, c, d, e)

module Numeric.Dioid.Class
class (Semiring r, Idempotent r) => Dioid r
instance (Numeric.Algebra.Class.Semiring r, Numeric.Additive.Class.Idempotent r) => Numeric.Dioid.Class.Dioid r

module Numeric.Module.Class
class (Semiring r, Additive m) => LeftModule r m
(.*) :: LeftModule r m => r -> m -> m
class (Semiring r, Additive m) => RightModule r m
(*.) :: RightModule r m => m -> r -> m
class (LeftModule r m, RightModule r m) => Module r m

module Numeric.Order.Class
class Order a
(<~) :: Order a => a -> a -> Bool
(<) :: Order a => a -> a -> Bool
(>~) :: Order a => a -> a -> Bool
(>) :: Order a => a -> a -> Bool
(~~) :: Order a => a -> a -> Bool
(/~) :: Order a => a -> a -> Bool
order :: Order a => a -> a -> Maybe Ordering
comparable :: Order a => a -> a -> Bool
orderOrd :: Ord a => a -> a -> Maybe Ordering
instance Numeric.Order.Class.Order GHC.Types.Bool
instance Numeric.Order.Class.Order GHC.Integer.Type.Integer
instance Numeric.Order.Class.Order GHC.Types.Int
instance Numeric.Order.Class.Order GHC.Int.Int8
instance Numeric.Order.Class.Order GHC.Int.Int16
instance Numeric.Order.Class.Order GHC.Int.Int32
instance Numeric.Order.Class.Order GHC.Int.Int64
instance Numeric.Order.Class.Order GHC.Natural.Natural
instance Numeric.Order.Class.Order GHC.Types.Word
instance Numeric.Order.Class.Order GHC.Word.Word8
instance Numeric.Order.Class.Order GHC.Word.Word16
instance Numeric.Order.Class.Order GHC.Word.Word32
instance Numeric.Order.Class.Order GHC.Word.Word64
instance GHC.Classes.Ord a => Numeric.Order.Class.Order (Data.Set.Internal.Set a)
instance Numeric.Order.Class.Order ()
instance (Numeric.Order.Class.Order a, Numeric.Order.Class.Order b) => Numeric.Order.Class.Order (a, b)
instance (Numeric.Order.Class.Order a, Numeric.Order.Class.Order b, Numeric.Order.Class.Order c) => Numeric.Order.Class.Order (a, b, c)
instance (Numeric.Order.Class.Order a, Numeric.Order.Class.Order b, Numeric.Order.Class.Order c, Numeric.Order.Class.Order d) => Numeric.Order.Class.Order (a, b, c, d)
instance (Numeric.Order.Class.Order a, Numeric.Order.Class.Order b, Numeric.Order.Class.Order c, Numeric.Order.Class.Order d, Numeric.Order.Class.Order e) => Numeric.Order.Class.Order (a, b, c, d, e)

module Numeric.Order.Additive

-- | z + x &lt;= z + y = x &lt;= y = x + z &lt;= y + z
class (Additive r, Order r) => AdditiveOrder r
instance Numeric.Order.Additive.AdditiveOrder GHC.Integer.Type.Integer
instance Numeric.Order.Additive.AdditiveOrder GHC.Natural.Natural
instance Numeric.Order.Additive.AdditiveOrder GHC.Types.Bool
instance Numeric.Order.Additive.AdditiveOrder ()
instance (Numeric.Order.Additive.AdditiveOrder a, Numeric.Order.Additive.AdditiveOrder b) => Numeric.Order.Additive.AdditiveOrder (a, b)
instance (Numeric.Order.Additive.AdditiveOrder a, Numeric.Order.Additive.AdditiveOrder b, Numeric.Order.Additive.AdditiveOrder c) => Numeric.Order.Additive.AdditiveOrder (a, b, c)
instance (Numeric.Order.Additive.AdditiveOrder a, Numeric.Order.Additive.AdditiveOrder b, Numeric.Order.Additive.AdditiveOrder c, Numeric.Order.Additive.AdditiveOrder d) => Numeric.Order.Additive.AdditiveOrder (a, b, c, d)
instance (Numeric.Order.Additive.AdditiveOrder a, Numeric.Order.Additive.AdditiveOrder b, Numeric.Order.Additive.AdditiveOrder c, Numeric.Order.Additive.AdditiveOrder d, Numeric.Order.Additive.AdditiveOrder e) => Numeric.Order.Additive.AdditiveOrder (a, b, c, d, e)

module Numeric.Partial.Semigroup
class PartialSemigroup a
padd :: PartialSemigroup a => a -> a -> Maybe a
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Types.Int
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Integer.Type.Integer
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Natural.Natural
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Int.Int8
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Int.Int16
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Int.Int32
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Int.Int64
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Types.Word
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Word.Word8
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Word.Word16
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Word.Word32
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Word.Word64
instance Numeric.Partial.Semigroup.PartialSemigroup a => Numeric.Partial.Semigroup.PartialSemigroup (GHC.Base.Maybe a)
instance Numeric.Partial.Semigroup.PartialSemigroup GHC.Types.Bool
instance Numeric.Partial.Semigroup.PartialSemigroup ()
instance (Numeric.Partial.Semigroup.PartialSemigroup a, Numeric.Partial.Semigroup.PartialSemigroup b) => Numeric.Partial.Semigroup.PartialSemigroup (a, b)
instance (Numeric.Partial.Semigroup.PartialSemigroup a, Numeric.Partial.Semigroup.PartialSemigroup b, Numeric.Partial.Semigroup.PartialSemigroup c) => Numeric.Partial.Semigroup.PartialSemigroup (a, b, c)
instance (Numeric.Partial.Semigroup.PartialSemigroup a, Numeric.Partial.Semigroup.PartialSemigroup b, Numeric.Partial.Semigroup.PartialSemigroup c, Numeric.Partial.Semigroup.PartialSemigroup d) => Numeric.Partial.Semigroup.PartialSemigroup (a, b, c, d)
instance (Numeric.Partial.Semigroup.PartialSemigroup a, Numeric.Partial.Semigroup.PartialSemigroup b, Numeric.Partial.Semigroup.PartialSemigroup c, Numeric.Partial.Semigroup.PartialSemigroup d, Numeric.Partial.Semigroup.PartialSemigroup e) => Numeric.Partial.Semigroup.PartialSemigroup (a, b, c, d, e)
instance (Numeric.Partial.Semigroup.PartialSemigroup a, Numeric.Partial.Semigroup.PartialSemigroup b) => Numeric.Partial.Semigroup.PartialSemigroup (Data.Either.Either a b)

module Numeric.Partial.Monoid
class PartialSemigroup a => PartialMonoid a
pzero :: PartialMonoid a => a
instance Numeric.Partial.Monoid.PartialMonoid GHC.Types.Bool
instance Numeric.Partial.Monoid.PartialMonoid GHC.Types.Int
instance Numeric.Partial.Monoid.PartialMonoid GHC.Integer.Type.Integer
instance Numeric.Partial.Monoid.PartialMonoid GHC.Natural.Natural
instance Numeric.Partial.Monoid.PartialMonoid GHC.Int.Int8
instance Numeric.Partial.Monoid.PartialMonoid GHC.Int.Int16
instance Numeric.Partial.Monoid.PartialMonoid GHC.Int.Int32
instance Numeric.Partial.Monoid.PartialMonoid GHC.Int.Int64
instance Numeric.Partial.Monoid.PartialMonoid GHC.Types.Word
instance Numeric.Partial.Monoid.PartialMonoid GHC.Word.Word8
instance Numeric.Partial.Monoid.PartialMonoid GHC.Word.Word16
instance Numeric.Partial.Monoid.PartialMonoid GHC.Word.Word32
instance Numeric.Partial.Monoid.PartialMonoid GHC.Word.Word64
instance Numeric.Partial.Monoid.PartialMonoid ()
instance Numeric.Partial.Semigroup.PartialSemigroup a => Numeric.Partial.Monoid.PartialMonoid (GHC.Base.Maybe a)
instance (Numeric.Partial.Monoid.PartialMonoid a, Numeric.Partial.Monoid.PartialMonoid b) => Numeric.Partial.Monoid.PartialMonoid (a, b)
instance (Numeric.Partial.Monoid.PartialMonoid a, Numeric.Partial.Monoid.PartialMonoid b, Numeric.Partial.Monoid.PartialMonoid c) => Numeric.Partial.Monoid.PartialMonoid (a, b, c)
instance (Numeric.Partial.Monoid.PartialMonoid a, Numeric.Partial.Monoid.PartialMonoid b, Numeric.Partial.Monoid.PartialMonoid c, Numeric.Partial.Monoid.PartialMonoid d) => Numeric.Partial.Monoid.PartialMonoid (a, b, c, d)
instance (Numeric.Partial.Monoid.PartialMonoid a, Numeric.Partial.Monoid.PartialMonoid b, Numeric.Partial.Monoid.PartialMonoid c, Numeric.Partial.Monoid.PartialMonoid d, Numeric.Partial.Monoid.PartialMonoid e) => Numeric.Partial.Monoid.PartialMonoid (a, b, c, d, e)

module Numeric.Partial.Group
class PartialMonoid a => PartialGroup a
pnegate :: PartialGroup a => a -> Maybe a
pminus :: PartialGroup a => a -> a -> Maybe a
psubtract :: PartialGroup a => a -> a -> Maybe a
instance Numeric.Partial.Group.PartialGroup GHC.Types.Int
instance Numeric.Partial.Group.PartialGroup GHC.Integer.Type.Integer
instance Numeric.Partial.Group.PartialGroup GHC.Int.Int8
instance Numeric.Partial.Group.PartialGroup GHC.Int.Int16
instance Numeric.Partial.Group.PartialGroup GHC.Int.Int32
instance Numeric.Partial.Group.PartialGroup GHC.Int.Int64
instance Numeric.Partial.Group.PartialGroup GHC.Types.Word
instance Numeric.Partial.Group.PartialGroup GHC.Word.Word8
instance Numeric.Partial.Group.PartialGroup GHC.Word.Word16
instance Numeric.Partial.Group.PartialGroup GHC.Word.Word32
instance Numeric.Partial.Group.PartialGroup GHC.Word.Word64
instance Numeric.Partial.Group.PartialGroup GHC.Natural.Natural
instance Numeric.Partial.Group.PartialGroup ()
instance (Numeric.Partial.Group.PartialGroup a, Numeric.Partial.Group.PartialGroup b) => Numeric.Partial.Group.PartialGroup (a, b)
instance (Numeric.Partial.Group.PartialGroup a, Numeric.Partial.Group.PartialGroup b, Numeric.Partial.Group.PartialGroup c) => Numeric.Partial.Group.PartialGroup (a, b, c)
instance (Numeric.Partial.Group.PartialGroup a, Numeric.Partial.Group.PartialGroup b, Numeric.Partial.Group.PartialGroup c, Numeric.Partial.Group.PartialGroup d) => Numeric.Partial.Group.PartialGroup (a, b, c, d)
instance (Numeric.Partial.Group.PartialGroup a, Numeric.Partial.Group.PartialGroup b, Numeric.Partial.Group.PartialGroup c, Numeric.Partial.Group.PartialGroup d, Numeric.Partial.Group.PartialGroup e) => Numeric.Partial.Group.PartialGroup (a, b, c, d, e)

module Numeric.Coalgebra.Categorical
newtype Morphism a
Morphism :: a -> Morphism a
instance Data.Data.Data a => Data.Data.Data (Numeric.Coalgebra.Categorical.Morphism a)
instance Numeric.Partial.Group.PartialGroup a => Numeric.Partial.Group.PartialGroup (Numeric.Coalgebra.Categorical.Morphism a)
instance Numeric.Partial.Monoid.PartialMonoid a => Numeric.Partial.Monoid.PartialMonoid (Numeric.Coalgebra.Categorical.Morphism a)
instance Numeric.Partial.Semigroup.PartialSemigroup a => Numeric.Partial.Semigroup.PartialSemigroup (Numeric.Coalgebra.Categorical.Morphism a)
instance GHC.Read.Read a => GHC.Read.Read (Numeric.Coalgebra.Categorical.Morphism a)
instance GHC.Show.Show a => GHC.Show.Show (Numeric.Coalgebra.Categorical.Morphism a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Numeric.Coalgebra.Categorical.Morphism a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Numeric.Coalgebra.Categorical.Morphism a)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Monoidal r, Numeric.Algebra.Class.Semiring r, Numeric.Partial.Semigroup.PartialSemigroup a) => Numeric.Algebra.Class.Coalgebra r (Numeric.Coalgebra.Categorical.Morphism a)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Monoidal r, Numeric.Algebra.Class.Semiring r, Numeric.Partial.Monoid.PartialMonoid a) => Numeric.Algebra.Unital.CounitalCoalgebra r (Numeric.Coalgebra.Categorical.Morphism a)

module Numeric.Rig.Class

-- | A Ring without (n)egation
class (Semiring r, Unital r, Monoidal r) => Rig r
fromNatural :: Rig r => Natural -> r
instance Numeric.Rig.Class.Rig GHC.Integer.Type.Integer
instance Numeric.Rig.Class.Rig GHC.Natural.Natural
instance Numeric.Rig.Class.Rig GHC.Types.Bool
instance Numeric.Rig.Class.Rig GHC.Types.Int
instance Numeric.Rig.Class.Rig GHC.Int.Int8
instance Numeric.Rig.Class.Rig GHC.Int.Int16
instance Numeric.Rig.Class.Rig GHC.Int.Int32
instance Numeric.Rig.Class.Rig GHC.Int.Int64
instance Numeric.Rig.Class.Rig GHC.Types.Word
instance Numeric.Rig.Class.Rig GHC.Word.Word8
instance Numeric.Rig.Class.Rig GHC.Word.Word16
instance Numeric.Rig.Class.Rig GHC.Word.Word32
instance Numeric.Rig.Class.Rig GHC.Word.Word64
instance Numeric.Rig.Class.Rig ()
instance (Numeric.Rig.Class.Rig a, Numeric.Rig.Class.Rig b) => Numeric.Rig.Class.Rig (a, b)
instance (Numeric.Rig.Class.Rig a, Numeric.Rig.Class.Rig b, Numeric.Rig.Class.Rig c) => Numeric.Rig.Class.Rig (a, b, c)
instance (Numeric.Rig.Class.Rig a, Numeric.Rig.Class.Rig b, Numeric.Rig.Class.Rig c, Numeric.Rig.Class.Rig d) => Numeric.Rig.Class.Rig (a, b, c, d)
instance (Numeric.Rig.Class.Rig a, Numeric.Rig.Class.Rig b, Numeric.Rig.Class.Rig c, Numeric.Rig.Class.Rig d, Numeric.Rig.Class.Rig e) => Numeric.Rig.Class.Rig (a, b, c, d, e)

module Numeric.Rig.Characteristic
class Rig r => Characteristic r
char :: Characteristic r => proxy r -> Natural
charInt :: (Integral s, Bounded s) => proxy s -> Natural
charWord :: (Integral s, Bounded s) => proxy s -> Natural
instance Numeric.Rig.Characteristic.Characteristic GHC.Types.Bool
instance Numeric.Rig.Characteristic.Characteristic GHC.Integer.Type.Integer
instance Numeric.Rig.Characteristic.Characteristic GHC.Natural.Natural
instance Numeric.Rig.Characteristic.Characteristic GHC.Types.Int
instance Numeric.Rig.Characteristic.Characteristic GHC.Int.Int8
instance Numeric.Rig.Characteristic.Characteristic GHC.Int.Int16
instance Numeric.Rig.Characteristic.Characteristic GHC.Int.Int32
instance Numeric.Rig.Characteristic.Characteristic GHC.Int.Int64
instance Numeric.Rig.Characteristic.Characteristic GHC.Types.Word
instance Numeric.Rig.Characteristic.Characteristic GHC.Word.Word8
instance Numeric.Rig.Characteristic.Characteristic GHC.Word.Word16
instance Numeric.Rig.Characteristic.Characteristic GHC.Word.Word32
instance Numeric.Rig.Characteristic.Characteristic GHC.Word.Word64
instance Numeric.Rig.Characteristic.Characteristic ()
instance (Numeric.Rig.Characteristic.Characteristic a, Numeric.Rig.Characteristic.Characteristic b) => Numeric.Rig.Characteristic.Characteristic (a, b)
instance (Numeric.Rig.Characteristic.Characteristic a, Numeric.Rig.Characteristic.Characteristic b, Numeric.Rig.Characteristic.Characteristic c) => Numeric.Rig.Characteristic.Characteristic (a, b, c)
instance (Numeric.Rig.Characteristic.Characteristic a, Numeric.Rig.Characteristic.Characteristic b, Numeric.Rig.Characteristic.Characteristic c, Numeric.Rig.Characteristic.Characteristic d) => Numeric.Rig.Characteristic.Characteristic (a, b, c, d)
instance (Numeric.Rig.Characteristic.Characteristic a, Numeric.Rig.Characteristic.Characteristic b, Numeric.Rig.Characteristic.Characteristic c, Numeric.Rig.Characteristic.Characteristic d, Numeric.Rig.Characteristic.Characteristic e) => Numeric.Rig.Characteristic.Characteristic (a, b, c, d, e)

module Numeric.Quadrance.Class
class Additive r => Quadrance r m
quadrance :: Quadrance r m => m -> r
instance Numeric.Quadrance.Class.Quadrance () a
instance (Numeric.Additive.Class.Additive r, Numeric.Algebra.Class.Monoidal r) => Numeric.Quadrance.Class.Quadrance r ()
instance (Numeric.Quadrance.Class.Quadrance r a, Numeric.Quadrance.Class.Quadrance r b) => Numeric.Quadrance.Class.Quadrance r (a, b)
instance (Numeric.Quadrance.Class.Quadrance r a, Numeric.Quadrance.Class.Quadrance r b, Numeric.Quadrance.Class.Quadrance r c) => Numeric.Quadrance.Class.Quadrance r (a, b, c)
instance (Numeric.Quadrance.Class.Quadrance r a, Numeric.Quadrance.Class.Quadrance r b, Numeric.Quadrance.Class.Quadrance r c, Numeric.Quadrance.Class.Quadrance r d) => Numeric.Quadrance.Class.Quadrance r (a, b, c, d)
instance (Numeric.Quadrance.Class.Quadrance r a, Numeric.Quadrance.Class.Quadrance r b, Numeric.Quadrance.Class.Quadrance r c, Numeric.Quadrance.Class.Quadrance r d, Numeric.Quadrance.Class.Quadrance r e) => Numeric.Quadrance.Class.Quadrance r (a, b, c, d, e)
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Types.Bool
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Types.Int
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Types.Word
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Natural.Natural
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Integer.Type.Integer
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Int.Int8
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Int.Int16
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Int.Int32
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Int.Int64
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Word.Word8
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Word.Word16
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Word.Word32
instance Numeric.Rig.Class.Rig r => Numeric.Quadrance.Class.Quadrance r GHC.Word.Word64

module Numeric.Rig.Ordered
class (AdditiveOrder r, Rig r) => OrderedRig r
instance Numeric.Rig.Ordered.OrderedRig GHC.Integer.Type.Integer
instance Numeric.Rig.Ordered.OrderedRig GHC.Natural.Natural
instance Numeric.Rig.Ordered.OrderedRig GHC.Types.Bool
instance Numeric.Rig.Ordered.OrderedRig ()
instance (Numeric.Rig.Ordered.OrderedRig a, Numeric.Rig.Ordered.OrderedRig b) => Numeric.Rig.Ordered.OrderedRig (a, b)
instance (Numeric.Rig.Ordered.OrderedRig a, Numeric.Rig.Ordered.OrderedRig b, Numeric.Rig.Ordered.OrderedRig c) => Numeric.Rig.Ordered.OrderedRig (a, b, c)
instance (Numeric.Rig.Ordered.OrderedRig a, Numeric.Rig.Ordered.OrderedRig b, Numeric.Rig.Ordered.OrderedRig c, Numeric.Rig.Ordered.OrderedRig d) => Numeric.Rig.Ordered.OrderedRig (a, b, c, d)
instance (Numeric.Rig.Ordered.OrderedRig a, Numeric.Rig.Ordered.OrderedRig b, Numeric.Rig.Ordered.OrderedRig c, Numeric.Rig.Ordered.OrderedRig d, Numeric.Rig.Ordered.OrderedRig e) => Numeric.Rig.Ordered.OrderedRig (a, b, c, d, e)

module Numeric.Rng.Class

-- | A Ring without an <i>i</i>dentity.
class (Group r, Semiring r) => Rng r
instance (Numeric.Additive.Group.Group r, Numeric.Algebra.Class.Semiring r) => Numeric.Rng.Class.Rng r

module Numeric.Ring.Class
class (Rig r, Rng r) => Ring r
fromInteger :: Ring r => Integer -> r
fromIntegral :: (Integral n, Ring r) => n -> r
instance Numeric.Ring.Class.Ring GHC.Integer.Type.Integer
instance Numeric.Ring.Class.Ring GHC.Types.Int
instance Numeric.Ring.Class.Ring GHC.Int.Int8
instance Numeric.Ring.Class.Ring GHC.Int.Int16
instance Numeric.Ring.Class.Ring GHC.Int.Int32
instance Numeric.Ring.Class.Ring GHC.Int.Int64
instance Numeric.Ring.Class.Ring GHC.Types.Word
instance Numeric.Ring.Class.Ring GHC.Word.Word8
instance Numeric.Ring.Class.Ring GHC.Word.Word16
instance Numeric.Ring.Class.Ring GHC.Word.Word32
instance Numeric.Ring.Class.Ring GHC.Word.Word64
instance Numeric.Ring.Class.Ring ()
instance (Numeric.Ring.Class.Ring a, Numeric.Ring.Class.Ring b) => Numeric.Ring.Class.Ring (a, b)
instance (Numeric.Ring.Class.Ring a, Numeric.Ring.Class.Ring b, Numeric.Ring.Class.Ring c) => Numeric.Ring.Class.Ring (a, b, c)
instance (Numeric.Ring.Class.Ring a, Numeric.Ring.Class.Ring b, Numeric.Ring.Class.Ring c, Numeric.Ring.Class.Ring d) => Numeric.Ring.Class.Ring (a, b, c, d)
instance (Numeric.Ring.Class.Ring a, Numeric.Ring.Class.Ring b, Numeric.Ring.Class.Ring c, Numeric.Ring.Class.Ring d, Numeric.Ring.Class.Ring e) => Numeric.Ring.Class.Ring (a, b, c, d, e)

module Numeric.Ring.Local
class Ring r => LocalRing r

module Numeric.Ring.Division
class (Division r, Ring r) => DivisionRing r
instance (Numeric.Algebra.Division.Division r, Numeric.Ring.Class.Ring r) => Numeric.Ring.Division.DivisionRing r

module Numeric.Order.LocallyFinite
class Order a => LocallyFiniteOrder a
range :: LocallyFiniteOrder a => a -> a -> [a]
rangeSize :: LocallyFiniteOrder a => a -> a -> Natural
moebiusInversion :: (LocallyFiniteOrder a, Ring r) => a -> a -> r
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Natural.Natural
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Integer.Type.Integer
instance GHC.Classes.Ord a => Numeric.Order.LocallyFinite.LocallyFiniteOrder (Data.Set.Internal.Set a)
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Types.Bool
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Types.Int
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Int.Int8
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Int.Int16
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Int.Int32
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Int.Int64
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Types.Word
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Word.Word8
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Word.Word16
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Word.Word32
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder GHC.Word.Word64
instance Numeric.Order.LocallyFinite.LocallyFiniteOrder ()
instance (Numeric.Order.LocallyFinite.LocallyFiniteOrder a, Numeric.Order.LocallyFinite.LocallyFiniteOrder b) => Numeric.Order.LocallyFinite.LocallyFiniteOrder (a, b)
instance (Numeric.Order.LocallyFinite.LocallyFiniteOrder a, Numeric.Order.LocallyFinite.LocallyFiniteOrder b, Numeric.Order.LocallyFinite.LocallyFiniteOrder c) => Numeric.Order.LocallyFinite.LocallyFiniteOrder (a, b, c)
instance (Numeric.Order.LocallyFinite.LocallyFiniteOrder a, Numeric.Order.LocallyFinite.LocallyFiniteOrder b, Numeric.Order.LocallyFinite.LocallyFiniteOrder c, Numeric.Order.LocallyFinite.LocallyFiniteOrder d) => Numeric.Order.LocallyFinite.LocallyFiniteOrder (a, b, c, d)
instance (Numeric.Order.LocallyFinite.LocallyFiniteOrder a, Numeric.Order.LocallyFinite.LocallyFiniteOrder b, Numeric.Order.LocallyFinite.LocallyFiniteOrder c, Numeric.Order.LocallyFinite.LocallyFiniteOrder d, Numeric.Order.LocallyFinite.LocallyFiniteOrder e) => Numeric.Order.LocallyFinite.LocallyFiniteOrder (a, b, c, d, e)

module Numeric.Module.Representable

-- | `Additive.(+)` default definition
addRep :: (Applicative m, Additive r) => m r -> m r -> m r

-- | <a>sinnum1p</a> default definition
sinnum1pRep :: (Functor m, Additive r) => Natural -> m r -> m r

-- | <a>zero</a> default definition
zeroRep :: (Applicative m, Monoidal r) => m r

-- | <a>sinnum</a> default definition
sinnumRep :: (Functor m, Monoidal r) => Natural -> m r -> m r

-- | <a>negate</a> default definition
negateRep :: (Functor m, Group r) => m r -> m r

-- | `Group.(-)` default definition
minusRep :: (Applicative m, Group r) => m r -> m r -> m r

-- | <a>subtract</a> default definition
subtractRep :: (Applicative m, Group r) => m r -> m r -> m r

-- | <a>times</a> default definition
timesRep :: (Integral n, Functor m, Group r) => n -> m r -> m r

-- | `Multiplicative.(*)` default definition
mulRep :: (Representable m, Algebra r (Rep m)) => m r -> m r -> m r

-- | <a>one</a> default definition
oneRep :: (Representable m, Unital r, UnitalAlgebra r (Rep m)) => m r

-- | <a>fromNatural</a> default definition
fromNaturalRep :: (UnitalAlgebra r (Rep m), Representable m, Rig r) => Natural -> m r

-- | <a>fromInteger</a> default definition
fromIntegerRep :: (UnitalAlgebra r (Rep m), Representable m, Ring r) => Integer -> m r

module Numeric.Covector

-- | Linear functionals from elements of an (infinite) free module to a
--   scalar
newtype Covector r a
Covector :: ((a -> r) -> r) -> Covector r a
[$*] :: Covector r a -> (a -> r) -> r
counitM :: UnitalAlgebra r a => a -> Covector r ()
unitM :: CounitalCoalgebra r c => Covector r c
comultM :: Algebra r a => a -> Covector r (a, a)
multM :: Coalgebra r c => c -> c -> Covector r c
invM :: InvolutiveAlgebra r h => h -> Covector r h
coinvM :: InvolutiveCoalgebra r h => h -> Covector r h

-- | convolveM antipodeM return = convolveM return antipodeM = comultM
--   &gt;=&gt; uncurry joinM
antipodeM :: HopfAlgebra r h => h -> Covector r h
convolveM :: (Algebra r c, Coalgebra r a) => (c -> Covector r a) -> (c -> Covector r a) -> c -> Covector r a
instance GHC.Base.Functor (Numeric.Covector.Covector r)
instance Data.Functor.Bind.Class.Apply (Numeric.Covector.Covector r)
instance GHC.Base.Applicative (Numeric.Covector.Covector r)
instance Data.Functor.Bind.Class.Bind (Numeric.Covector.Covector r)
instance GHC.Base.Monad (Numeric.Covector.Covector r)
instance Numeric.Additive.Class.Additive r => Data.Functor.Alt.Alt (Numeric.Covector.Covector r)
instance Numeric.Algebra.Class.Monoidal r => Data.Functor.Plus.Plus (Numeric.Covector.Covector r)
instance Numeric.Algebra.Class.Monoidal r => GHC.Base.Alternative (Numeric.Covector.Covector r)
instance Numeric.Algebra.Class.Monoidal r => GHC.Base.MonadPlus (Numeric.Covector.Covector r)
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Covector.Covector r a)
instance Numeric.Algebra.Class.Coalgebra r m => Numeric.Algebra.Class.Multiplicative (Numeric.Covector.Covector r m)
instance (Numeric.Algebra.Commutative.Commutative m, Numeric.Algebra.Class.Coalgebra r m) => Numeric.Algebra.Commutative.Commutative (Numeric.Covector.Covector r m)
instance Numeric.Algebra.Class.Coalgebra r m => Numeric.Algebra.Class.Semiring (Numeric.Covector.Covector r m)
instance Numeric.Algebra.Unital.CounitalCoalgebra r m => Numeric.Algebra.Unital.Unital (Numeric.Covector.Covector r m)
instance (Numeric.Rig.Class.Rig r, Numeric.Algebra.Unital.CounitalCoalgebra r m) => Numeric.Rig.Class.Rig (Numeric.Covector.Covector r m)
instance (Numeric.Ring.Class.Ring r, Numeric.Algebra.Unital.CounitalCoalgebra r m) => Numeric.Ring.Class.Ring (Numeric.Covector.Covector r m)
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (Numeric.Covector.Covector r a)
instance (Numeric.Additive.Class.Idempotent r, Numeric.Algebra.Idempotent.IdempotentCoalgebra r a) => Numeric.Algebra.Idempotent.Band (Numeric.Covector.Covector r a)
instance Numeric.Algebra.Class.Monoidal s => Numeric.Algebra.Class.Monoidal (Numeric.Covector.Covector s a)
instance Numeric.Additive.Class.Abelian s => Numeric.Additive.Class.Abelian (Numeric.Covector.Covector s a)
instance Numeric.Additive.Group.Group s => Numeric.Additive.Group.Group (Numeric.Covector.Covector s a)
instance Numeric.Algebra.Class.Coalgebra r m => Numeric.Algebra.Class.LeftModule (Numeric.Covector.Covector r m) (Numeric.Covector.Covector r m)
instance Numeric.Algebra.Class.LeftModule r s => Numeric.Algebra.Class.LeftModule r (Numeric.Covector.Covector s m)
instance Numeric.Algebra.Class.Coalgebra r m => Numeric.Algebra.Class.RightModule (Numeric.Covector.Covector r m) (Numeric.Covector.Covector r m)
instance Numeric.Algebra.Class.RightModule r s => Numeric.Algebra.Class.RightModule r (Numeric.Covector.Covector s m)

module Numeric.Coalgebra.Trigonometric.Class
class Trigonometric r
cos :: Trigonometric r => r
sin :: Trigonometric r => r
instance Numeric.Coalgebra.Trigonometric.Class.Trigonometric a => Numeric.Coalgebra.Trigonometric.Class.Trigonometric (Numeric.Covector.Covector r a)

module Numeric.Coalgebra.Hyperbolic.Class
class Hyperbolic r
cosh :: Hyperbolic r => r
sinh :: Hyperbolic r => r
instance Numeric.Coalgebra.Hyperbolic.Class.Hyperbolic a => Numeric.Coalgebra.Hyperbolic.Class.Hyperbolic (Numeric.Covector.Covector r a)

module Numeric.Algebra.Distinguished.Class
class Distinguished t
e :: Distinguished t => t
instance Numeric.Algebra.Distinguished.Class.Distinguished a => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Covector.Covector r a)

module Numeric.Algebra.Dual.Class
class Distinguished t => Infinitesimal t
d :: Infinitesimal t => t
instance Numeric.Algebra.Dual.Class.Infinitesimal a => Numeric.Algebra.Dual.Class.Infinitesimal (Numeric.Covector.Covector r a)

module Numeric.Algebra.Complex.Class
class Distinguished r => Complicated r
i :: Complicated r => r
instance Numeric.Algebra.Complex.Class.Complicated a => Numeric.Algebra.Complex.Class.Complicated (Numeric.Covector.Covector r a)

module Numeric.Algebra.Quaternion.Class
class Complicated t => Hamiltonian t
j :: Hamiltonian t => t
k :: Hamiltonian t => t
instance Numeric.Algebra.Quaternion.Class.Hamiltonian a => Numeric.Algebra.Quaternion.Class.Hamiltonian (Numeric.Covector.Covector r a)

module Numeric.Coalgebra.Incidence

-- | the dual incidence algebra basis
data Interval' a
Interval' :: a -> a -> Interval' a
zeta' :: Unital r => Interval' a -> r
moebius' :: (Ring r, LocallyFiniteOrder a) => Interval' a -> r
instance Data.Data.Data a => Data.Data.Data (Numeric.Coalgebra.Incidence.Interval' a)
instance GHC.Read.Read a => GHC.Read.Read (Numeric.Coalgebra.Incidence.Interval' a)
instance GHC.Show.Show a => GHC.Show.Show (Numeric.Coalgebra.Incidence.Interval' a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Numeric.Coalgebra.Incidence.Interval' a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Numeric.Coalgebra.Incidence.Interval' a)
instance (GHC.Classes.Eq a, Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Monoidal r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Class.Coalgebra r (Numeric.Coalgebra.Incidence.Interval' a)
instance (GHC.Classes.Eq a, GHC.Enum.Bounded a, Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Monoidal r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Unital.CounitalCoalgebra r (Numeric.Coalgebra.Incidence.Interval' a)

module Numeric.Algebra.Incidence
data Interval a
Interval :: a -> a -> Interval a
zeta :: Unital r => Interval a -> r
moebius :: (Ring r, LocallyFiniteOrder a) => Interval a -> r
instance Data.Data.Data a => Data.Data.Data (Numeric.Algebra.Incidence.Interval a)
instance GHC.Read.Read a => GHC.Read.Read (Numeric.Algebra.Incidence.Interval a)
instance GHC.Show.Show a => GHC.Show.Show (Numeric.Algebra.Incidence.Interval a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Numeric.Algebra.Incidence.Interval a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Numeric.Algebra.Incidence.Interval a)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Monoidal r, Numeric.Algebra.Class.Semiring r, Numeric.Order.LocallyFinite.LocallyFiniteOrder a) => Numeric.Algebra.Class.Algebra r (Numeric.Algebra.Incidence.Interval a)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Monoidal r, Numeric.Algebra.Class.Semiring r, Numeric.Order.LocallyFinite.LocallyFiniteOrder a) => Numeric.Algebra.Unital.UnitalAlgebra r (Numeric.Algebra.Incidence.Interval a)

module Numeric.Semiring.Involutive

-- | adjoint (x + y) = adjoint x + adjoint y
class (Semiring r, InvolutiveMultiplication r) => InvolutiveSemiring r

module Numeric.Semiring.ZeroProduct

-- | A zero-product semiring has no zero divisors
--   
--   <pre>
--   a * b = 0 implies a == 0 || b == 0
--   </pre>
class (Monoidal r, Semiring r) => ZeroProductSemiring r
instance Numeric.Semiring.ZeroProduct.ZeroProductSemiring GHC.Integer.Type.Integer
instance Numeric.Semiring.ZeroProduct.ZeroProductSemiring GHC.Natural.Natural
instance Numeric.Semiring.ZeroProduct.ZeroProductSemiring GHC.Types.Bool

module Numeric.Algebra.Unital.UnitNormalForm
class (DecidableUnits r, DecidableAssociates r) => UnitNormalForm r
splitUnit :: UnitNormalForm r => r -> (r, r)
splitUnit :: (UnitNormalForm r, Division r, ZeroProductSemiring r, DecidableZero r) => r -> (r, r)
normalize :: UnitNormalForm r => r -> r
leadingUnit :: UnitNormalForm r => r -> r
instance Numeric.Algebra.Unital.UnitNormalForm.UnitNormalForm GHC.Integer.Type.Integer

module Numeric.Domain.UFD
class (GCDDomain d) => UFD d

module Numeric.Domain.PID
class (UFD d) => PID d
egcd :: PID d => d -> d -> (d, d, d)
egcd :: (PID d, (Euclidean d)) => d -> d -> (d, d, d)

module Numeric.Domain.Integral

-- | An integral domain is a commutative domain in which 1≠0.
class (Domain d, Commutative d) => IntegralDomain d
divides :: IntegralDomain d => d -> d -> Bool
divides :: (IntegralDomain d, (Euclidean d)) => d -> d -> Bool
maybeQuot :: IntegralDomain d => d -> d -> Maybe d
maybeQuot :: (IntegralDomain d, (Euclidean d)) => d -> d -> Maybe d

module Numeric.Domain.Euclidean
class (PID d) => Euclidean d

-- | Euclidean (degree) function on <tt>r</tt>.
degree :: Euclidean d => d -> Maybe Natural

-- | Euclidean (degree) function on <tt>r</tt>.
degree :: (Euclidean d, (Division d)) => d -> Maybe Natural

-- | Division algorithm. <tt>a <a>divide</a> b</tt> calculates quotient and
--   remainder of <tt>a</tt> divided by <tt>b</tt>.
--   
--   <pre>
--   let (q, r) = divide a p in p*q + r == a &amp;&amp; degree r &lt; degree q
--   </pre>
divide :: Euclidean d => d -> d -> (d, d)

-- | Division algorithm. <tt>a <a>divide</a> b</tt> calculates quotient and
--   remainder of <tt>a</tt> divided by <tt>b</tt>.
--   
--   <pre>
--   let (q, r) = divide a p in p*q + r == a &amp;&amp; degree r &lt; degree q
--   </pre>
divide :: (Euclidean d, (Division d)) => d -> d -> (d, d)
quot :: Euclidean d => d -> d -> d
rem :: Euclidean d => d -> d -> d

-- | Extended euclidean algorithm.
--   
--   <pre>
--   euclid f g == xs ==&gt; all (\(r, s, t) -&gt; r == f * s + g * t) xs
--   </pre>
euclid :: (Euclidean d) => d -> d -> [(d, d, d)]
prs :: Euclidean r => r -> r -> [(r, r, r)]
chineseRemainder :: Euclidean r => [(r, r)] -> r

module Numeric.Field.Class
class (Euclidean d, Division d) => Field d
instance (Numeric.Domain.Internal.Euclidean d, Numeric.Algebra.Division.Division d) => Numeric.Field.Class.Field d

module Numeric.Algebra

-- | <pre>
--   (a + b) + c = a + (b + c)
--   sinnum 1 a = a
--   sinnum (2 * n) a = sinnum n a + sinnum n a
--   sinnum (2 * n + 1) a = sinnum n a + sinnum n a + a
--   </pre>
class Additive r
(+) :: Additive r => r -> r -> r

-- | sinnum1p n r = sinnum (1 + n) r
sinnum1p :: Additive r => Natural -> r -> r
sumWith1 :: (Additive r, Foldable1 f) => (a -> r) -> f a -> r
sum1 :: (Foldable1 f, Additive r) => f r -> r

-- | an additive abelian semigroup
--   
--   a + b = b + a
class Additive r => Abelian r

-- | An additive semigroup with idempotent addition.
--   
--   <pre>
--   a + a = a
--   </pre>
class Additive r => Idempotent r
sinnum1pIdempotent :: Natural -> r -> r
sinnumIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r
class Additive m => Partitionable m

-- | partitionWith f c returns a list containing f a b for each a b such
--   that a + b = c,
partitionWith :: Partitionable m => (m -> m -> r) -> m -> NonEmpty r

-- | An additive monoid
--   
--   <pre>
--   zero + a = a = a + zero
--   </pre>
class (LeftModule Natural m, RightModule Natural m) => Monoidal m
zero :: Monoidal m => m
sinnum :: Monoidal m => Natural -> m -> m
sumWith :: (Monoidal m, Foldable f) => (a -> m) -> f a -> m
sum :: (Foldable f, Monoidal m) => f m -> m
class (LeftModule Integer r, RightModule Integer r, Monoidal r) => Group r
(-) :: Group r => r -> r -> r
negate :: Group r => r -> r
subtract :: Group r => r -> r -> r
times :: (Group r, Integral n) => n -> r -> r

-- | A multiplicative semigroup
class Multiplicative r
(*) :: Multiplicative r => r -> r -> r
pow1p :: Multiplicative r => r -> Natural -> r
productWith1 :: (Multiplicative r, Foldable1 f) => (a -> r) -> f a -> r
product1 :: (Foldable1 f, Multiplicative r) => f r -> r

-- | A commutative multiplicative semigroup
class Multiplicative r => Commutative r
class Multiplicative r => Unital r
one :: Unital r => r
pow :: Unital r => r -> Natural -> r
productWith :: (Unital r, Foldable f) => (a -> r) -> f a -> r
product :: (Foldable f, Unital r) => f r -> r

-- | An multiplicative semigroup with idempotent multiplication.
--   
--   <pre>
--   a * a = a
--   </pre>
class Multiplicative r => Band r
pow1pBand :: r -> Natural -> r
powBand :: Unital r => r -> Natural -> r
class Unital r => Division r
recip :: Division r => r -> r
(/) :: Division r => r -> r -> r
(\\) :: Division r => r -> r -> r
(^) :: (Division r, Integral n) => r -> n -> r

-- | `factorWith f c` returns a non-empty list containing `f a b` for all
--   `a, b` such that `a * b = c`.
--   
--   Results of factorWith f 0 are undefined and may result in either an
--   error or an infinite list.
class Multiplicative m => Factorable m
factorWith :: Factorable m => (m -> m -> r) -> m -> NonEmpty r

-- | An semigroup with involution
--   
--   <pre>
--   adjoint a * adjoint b = adjoint (b * a)
--   </pre>
class Multiplicative r => InvolutiveMultiplication r
adjoint :: InvolutiveMultiplication r => r -> r

-- | <pre>
--   adjoint = id
--   </pre>
class (Commutative r, InvolutiveMultiplication r) => TriviallyInvolutive r

-- | A pair of an additive abelian semigroup, and a multiplicative
--   semigroup, with the distributive laws:
--   
--   <pre>
--   a(b + c) = ab + ac -- left distribution (we are a LeftNearSemiring)
--   (a + b)c = ac + bc -- right distribution (we are a [Right]NearSemiring)
--   </pre>
--   
--   Common notation includes the laws for additive and multiplicative
--   identity in semiring.
--   
--   If you want that, look at <tt>Rig</tt> instead.
--   
--   Ideally we'd use the cyclic definition:
--   
--   <pre>
--   class (LeftModule r r, RightModule r r, Additive r, Abelian r, Multiplicative r) =&gt; Semiring r
--   </pre>
--   
--   to enforce that every semiring r is an r-module over itself, but
--   Haskell doesn't like that.
class (Additive r, Abelian r, Multiplicative r) => Semiring r

-- | adjoint (x + y) = adjoint x + adjoint y
class (Semiring r, InvolutiveMultiplication r) => InvolutiveSemiring r
class (Semiring r, Idempotent r) => Dioid r

-- | A Ring without an <i>i</i>dentity.
class (Group r, Semiring r) => Rng r

-- | A Ring without (n)egation
class (Semiring r, Unital r, Monoidal r) => Rig r
fromNatural :: Rig r => Natural -> r
class (Rig r, Rng r) => Ring r
fromInteger :: Ring r => Integer -> r
class Ring r => LocalRing r
class (Division r, Ring r) => DivisionRing r
class (Euclidean d, Division d) => Field d
class (Semiring r, Additive m) => LeftModule r m
(.*) :: LeftModule r m => r -> m -> m
class (Semiring r, Additive m) => RightModule r m
(*.) :: RightModule r m => m -> r -> m
class (LeftModule r m, RightModule r m) => Module r m

-- | An associative algebra built with a free module over a semiring
class Semiring r => Algebra r a
mult :: Algebra r a => (a -> a -> r) -> a -> r
class Semiring r => Coalgebra r c
comult :: Coalgebra r c => (c -> r) -> c -> c -> r

-- | An associative unital algebra over a semiring, built using a free
--   module
class Algebra r a => UnitalAlgebra r a
unit :: UnitalAlgebra r a => r -> a -> r
class Coalgebra r c => CounitalCoalgebra r c
counit :: CounitalCoalgebra r c => (c -> r) -> r

-- | A bialgebra is both a unital algebra and counital coalgebra where the
--   <a>mult</a> and <a>unit</a> are compatible in some sense with the
--   <a>comult</a> and <a>counit</a>. That is to say that <a>mult</a> and
--   <a>unit</a> are a coalgebra homomorphisms or (equivalently) that
--   <a>comult</a> and <a>counit</a> are an algebra homomorphisms.
class (UnitalAlgebra r a, CounitalCoalgebra r a) => Bialgebra r a
class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a
inv :: InvolutiveAlgebra r a => (a -> r) -> a -> r
class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c
coinv :: InvolutiveCoalgebra r c => (c -> r) -> c -> r
class (Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h
class (CommutativeAlgebra r a, TriviallyInvolutive r, InvolutiveAlgebra r a) => TriviallyInvolutiveAlgebra r a
class (CocommutativeCoalgebra r a, TriviallyInvolutive r, InvolutiveCoalgebra r a) => TriviallyInvolutiveCoalgebra r a
class (InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h
class Algebra r a => IdempotentAlgebra r a
class (Bialgebra r h, IdempotentAlgebra r h, IdempotentCoalgebra r h) => IdempotentBialgebra r h
class Algebra r a => CommutativeAlgebra r a
class (Bialgebra r h, CommutativeAlgebra r h, CocommutativeCoalgebra r h) => CommutativeBialgebra r h
class Coalgebra r c => CocommutativeCoalgebra r c
class UnitalAlgebra r a => DivisionAlgebra r a
recipriocal :: DivisionAlgebra r a => (a -> r) -> a -> r

-- | A HopfAlgebra algebra on a semiring, where the module is free.
--   
--   When <tt>antipode . antipode = id</tt> and antipode is an
--   antihomomorphism then we are an InvolutiveBialgebra with <tt>inv =
--   antipode</tt> as well
class Bialgebra r h => HopfAlgebra r h
antipode :: HopfAlgebra r h => (h -> r) -> h -> r
class Rig r => Characteristic r
char :: Characteristic r => proxy r -> Natural
charInt :: (Integral s, Bounded s) => proxy s -> Natural
charWord :: (Integral s, Bounded s) => proxy s -> Natural
class Order a
(<~) :: Order a => a -> a -> Bool
(<) :: Order a => a -> a -> Bool
(>~) :: Order a => a -> a -> Bool
(>) :: Order a => a -> a -> Bool
(~~) :: Order a => a -> a -> Bool
(/~) :: Order a => a -> a -> Bool
order :: Order a => a -> a -> Maybe Ordering
comparable :: Order a => a -> a -> Bool
class (AdditiveOrder r, Rig r) => OrderedRig r

-- | z + x &lt;= z + y = x &lt;= y = x + z &lt;= y + z
class (Additive r, Order r) => AdditiveOrder r
class Order a => LocallyFiniteOrder a
class Monoidal r => DecidableZero r
class Unital r => DecidableUnits r
class Unital r => DecidableAssociates r

-- | Type representing arbitrary-precision non-negative integers.
--   
--   Operations whose result would be negative <tt><tt>throw</tt>
--   (<tt>Underflow</tt> :: <tt>ArithException</tt>)</tt>.
data Natural :: *

-- | `Additive.(+)` default definition
addRep :: (Applicative m, Additive r) => m r -> m r -> m r

-- | <a>sinnum1p</a> default definition
sinnum1pRep :: (Functor m, Additive r) => Natural -> m r -> m r

-- | <a>zero</a> default definition
zeroRep :: (Applicative m, Monoidal r) => m r

-- | <a>sinnum</a> default definition
sinnumRep :: (Functor m, Monoidal r) => Natural -> m r -> m r

-- | <a>negate</a> default definition
negateRep :: (Functor m, Group r) => m r -> m r

-- | `Group.(-)` default definition
minusRep :: (Applicative m, Group r) => m r -> m r -> m r

-- | <a>subtract</a> default definition
subtractRep :: (Applicative m, Group r) => m r -> m r -> m r

-- | <a>times</a> default definition
timesRep :: (Integral n, Functor m, Group r) => n -> m r -> m r

-- | `Multiplicative.(*)` default definition
mulRep :: (Representable m, Algebra r (Rep m)) => m r -> m r -> m r

-- | <a>one</a> default definition
oneRep :: (Representable m, Unital r, UnitalAlgebra r (Rep m)) => m r

-- | <a>fromNatural</a> default definition
fromNaturalRep :: (UnitalAlgebra r (Rep m), Representable m, Rig r) => Natural -> m r

-- | <a>fromInteger</a> default definition
fromIntegerRep :: (UnitalAlgebra r (Rep m), Representable m, Ring r) => Integer -> m r
class Additive r => Quadrance r m
quadrance :: Quadrance r m => m -> r

-- | Linear functionals from elements of an (infinite) free module to a
--   scalar
newtype Covector r a
Covector :: ((a -> r) -> r) -> Covector r a
[$*] :: Covector r a -> (a -> r) -> r
counitM :: UnitalAlgebra r a => a -> Covector r ()
unitM :: CounitalCoalgebra r c => Covector r c
comultM :: Algebra r a => a -> Covector r (a, a)
multM :: Coalgebra r c => c -> c -> Covector r c
invM :: InvolutiveAlgebra r h => h -> Covector r h
coinvM :: InvolutiveCoalgebra r h => h -> Covector r h

-- | convolveM antipodeM return = convolveM return antipodeM = comultM
--   &gt;=&gt; uncurry joinM
antipodeM :: HopfAlgebra r h => h -> Covector r h
convolveM :: (Algebra r c, Coalgebra r a) => (c -> Covector r a) -> (c -> Covector r a) -> c -> Covector r a

module Numeric.Rng.Zero
newtype ZeroRng r
ZeroRng :: r -> ZeroRng r
[runZeroRng] :: ZeroRng r -> r
instance GHC.Read.Read r => GHC.Read.Read (Numeric.Rng.Zero.ZeroRng r)
instance GHC.Show.Show r => GHC.Show.Show (Numeric.Rng.Zero.ZeroRng r)
instance GHC.Classes.Ord r => GHC.Classes.Ord (Numeric.Rng.Zero.ZeroRng r)
instance GHC.Classes.Eq r => GHC.Classes.Eq (Numeric.Rng.Zero.ZeroRng r)
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Rng.Zero.ZeroRng r)
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (Numeric.Rng.Zero.ZeroRng r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Rng.Zero.ZeroRng r)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (Numeric.Rng.Zero.ZeroRng r)
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (Numeric.Rng.Zero.ZeroRng r)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Multiplicative (Numeric.Rng.Zero.ZeroRng r)
instance (Numeric.Algebra.Class.Monoidal r, Numeric.Additive.Class.Abelian r) => Numeric.Algebra.Class.Semiring (Numeric.Rng.Zero.ZeroRng r)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Commutative.Commutative (Numeric.Rng.Zero.ZeroRng r)
instance (Numeric.Additive.Group.Group r, Numeric.Additive.Class.Abelian r) => Numeric.Rng.Class.Rng (Numeric.Rng.Zero.ZeroRng r)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.LeftModule GHC.Natural.Natural (Numeric.Rng.Zero.ZeroRng r)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.RightModule GHC.Natural.Natural (Numeric.Rng.Zero.ZeroRng r)
instance Numeric.Additive.Group.Group r => Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer (Numeric.Rng.Zero.ZeroRng r)
instance Numeric.Additive.Group.Group r => Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer (Numeric.Rng.Zero.ZeroRng r)

module Numeric.Ring.Rng

-- | The free Ring given a Rng obtained by adjoining Z, such that
--   
--   <pre>
--   RngRing r = n*1 + r
--   </pre>
--   
--   This ring is commonly denoted r^.
data RngRing r
RngRing :: !Integer -> r -> RngRing r

-- | The rng homomorphism from r to RngRing r
rngRingHom :: r -> RngRing r

-- | given a rng homomorphism from a rng r into a ring s, liftRngHom yields
--   a ring homomorphism from the ring `r^` into <tt>s</tt>.
liftRngHom :: Ring s => (r -> s) -> RngRing r -> s
instance GHC.Read.Read r => GHC.Read.Read (Numeric.Ring.Rng.RngRing r)
instance GHC.Show.Show r => GHC.Show.Show (Numeric.Ring.Rng.RngRing r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Additive (Numeric.Ring.Rng.RngRing r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Ring.Rng.RngRing r)
instance (Numeric.Additive.Class.Abelian r, Numeric.Algebra.Class.Monoidal r) => Numeric.Algebra.Class.LeftModule GHC.Natural.Natural (Numeric.Ring.Rng.RngRing r)
instance (Numeric.Additive.Class.Abelian r, Numeric.Algebra.Class.Monoidal r) => Numeric.Algebra.Class.RightModule GHC.Natural.Natural (Numeric.Ring.Rng.RngRing r)
instance (Numeric.Additive.Class.Abelian r, Numeric.Algebra.Class.Monoidal r) => Numeric.Algebra.Class.Monoidal (Numeric.Ring.Rng.RngRing r)
instance (Numeric.Additive.Class.Abelian r, Numeric.Additive.Group.Group r) => Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer (Numeric.Ring.Rng.RngRing r)
instance (Numeric.Additive.Class.Abelian r, Numeric.Additive.Group.Group r) => Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer (Numeric.Ring.Rng.RngRing r)
instance (Numeric.Additive.Class.Abelian r, Numeric.Additive.Group.Group r) => Numeric.Additive.Group.Group (Numeric.Ring.Rng.RngRing r)
instance Numeric.Rng.Class.Rng r => Numeric.Algebra.Class.Multiplicative (Numeric.Ring.Rng.RngRing r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Commutative.Commutative (Numeric.Ring.Rng.RngRing r)
instance Numeric.Rng.Class.Rng s => Numeric.Algebra.Class.LeftModule (Numeric.Ring.Rng.RngRing s) (Numeric.Ring.Rng.RngRing s)
instance Numeric.Rng.Class.Rng s => Numeric.Algebra.Class.RightModule (Numeric.Ring.Rng.RngRing s) (Numeric.Ring.Rng.RngRing s)
instance Numeric.Rng.Class.Rng r => Numeric.Algebra.Unital.Unital (Numeric.Ring.Rng.RngRing r)
instance (Numeric.Rng.Class.Rng r, Numeric.Algebra.Division.Division r) => Numeric.Algebra.Division.Division (Numeric.Ring.Rng.RngRing r)
instance Numeric.Rng.Class.Rng r => Numeric.Algebra.Class.Semiring (Numeric.Ring.Rng.RngRing r)
instance Numeric.Rng.Class.Rng r => Numeric.Rig.Class.Rig (Numeric.Ring.Rng.RngRing r)
instance Numeric.Rng.Class.Rng r => Numeric.Ring.Class.Ring (Numeric.Ring.Rng.RngRing r)

module Numeric.Ring.Opposite

-- | <a>http://en.wikipedia.org/wiki/Opposite_ring</a>
newtype Opposite r
Opposite :: r -> Opposite r
[runOpposite] :: Opposite r -> r
instance GHC.Read.Read r => GHC.Read.Read (Numeric.Ring.Opposite.Opposite r)
instance GHC.Show.Show r => GHC.Show.Show (Numeric.Ring.Opposite.Opposite r)
instance GHC.Classes.Eq r => GHC.Classes.Eq (Numeric.Ring.Opposite.Opposite r)
instance GHC.Classes.Ord r => GHC.Classes.Ord (Numeric.Ring.Opposite.Opposite r)
instance GHC.Base.Functor Numeric.Ring.Opposite.Opposite
instance Data.Foldable.Foldable Numeric.Ring.Opposite.Opposite
instance Data.Traversable.Traversable Numeric.Ring.Opposite.Opposite
instance Data.Semigroup.Foldable.Class.Foldable1 Numeric.Ring.Opposite.Opposite
instance Data.Semigroup.Traversable.Class.Traversable1 Numeric.Ring.Opposite.Opposite
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.LeftModule (Numeric.Ring.Opposite.Opposite r) (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Algebra.Class.RightModule r s => Numeric.Algebra.Class.LeftModule r (Numeric.Ring.Opposite.Opposite s)
instance Numeric.Algebra.Class.LeftModule r s => Numeric.Algebra.Class.RightModule r (Numeric.Ring.Opposite.Opposite s)
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.RightModule (Numeric.Ring.Opposite.Opposite r) (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Decidable.Zero.DecidableZero r => Numeric.Decidable.Zero.DecidableZero (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Decidable.Units.DecidableUnits r => Numeric.Decidable.Units.DecidableUnits (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Decidable.Associates.DecidableAssociates r => Numeric.Decidable.Associates.DecidableAssociates (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Algebra.Class.Multiplicative r => Numeric.Algebra.Class.Multiplicative (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Algebra.Commutative.Commutative r => Numeric.Algebra.Commutative.Commutative (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Algebra.Idempotent.Band r => Numeric.Algebra.Idempotent.Band (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Algebra.Unital.Unital r => Numeric.Algebra.Unital.Unital (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Algebra.Division.Division r => Numeric.Algebra.Division.Division (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Algebra.Class.Semiring r => Numeric.Algebra.Class.Semiring (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Rig.Class.Rig r => Numeric.Rig.Class.Rig (Numeric.Ring.Opposite.Opposite r)
instance Numeric.Ring.Class.Ring r => Numeric.Ring.Class.Ring (Numeric.Ring.Opposite.Opposite r)

module Numeric.Ring.Endomorphism

-- | The endomorphism ring of an abelian group or the endomorphism semiring
--   of an abelian monoid
--   
--   <a>http://en.wikipedia.org/wiki/Endomorphism_ring</a>
newtype End a
End :: (a -> a) -> End a
[appEnd] :: End a -> a -> a
toEnd :: Multiplicative r => r -> End r
fromEnd :: Unital r => End r -> r
frobenius :: Characteristic r => End r
instance Data.Semigroup.Semigroup (Numeric.Ring.Endomorphism.End r)
instance GHC.Base.Monoid (Numeric.Ring.Endomorphism.End r)
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Ring.Endomorphism.End r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Ring.Endomorphism.End r)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (Numeric.Ring.Endomorphism.End r)
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (Numeric.Ring.Endomorphism.End r)
instance Numeric.Algebra.Class.Multiplicative (Numeric.Ring.Endomorphism.End r)
instance Numeric.Algebra.Unital.Unital (Numeric.Ring.Endomorphism.End r)
instance (Numeric.Additive.Class.Abelian r, Numeric.Algebra.Commutative.Commutative r) => Numeric.Algebra.Commutative.Commutative (Numeric.Ring.Endomorphism.End r)
instance (Numeric.Additive.Class.Abelian r, Numeric.Algebra.Class.Monoidal r) => Numeric.Algebra.Class.Semiring (Numeric.Ring.Endomorphism.End r)
instance (Numeric.Additive.Class.Abelian r, Numeric.Algebra.Class.Monoidal r) => Numeric.Rig.Class.Rig (Numeric.Ring.Endomorphism.End r)
instance (Numeric.Additive.Class.Abelian r, Numeric.Additive.Group.Group r) => Numeric.Ring.Class.Ring (Numeric.Ring.Endomorphism.End r)
instance (Numeric.Algebra.Class.Monoidal m, Numeric.Additive.Class.Abelian m) => Numeric.Algebra.Class.LeftModule (Numeric.Ring.Endomorphism.End m) (Numeric.Ring.Endomorphism.End m)
instance (Numeric.Algebra.Class.Monoidal m, Numeric.Additive.Class.Abelian m) => Numeric.Algebra.Class.RightModule (Numeric.Ring.Endomorphism.End m) (Numeric.Ring.Endomorphism.End m)
instance Numeric.Algebra.Class.LeftModule r m => Numeric.Algebra.Class.LeftModule r (Numeric.Ring.Endomorphism.End m)
instance Numeric.Algebra.Class.RightModule r m => Numeric.Algebra.Class.RightModule r (Numeric.Ring.Endomorphism.End m)

module Numeric.Map

-- | linear maps from elements of a free module to another free module over
--   r
--   
--   <pre>
--   f $# x + y = (f $# x) + (f $# y)
--   f $# (r .* x) = r .* (f $# x)
--   </pre>
--   
--   <tt>Map r b a</tt> represents a linear mapping from a free module with
--   basis <tt>a</tt> over <tt>r</tt> to a free module with basis
--   <tt>b</tt> over <tt>r</tt>.
--   
--   Note well the reversed direction of the arrow, due to the
--   contravariance of change of basis!
--   
--   This way enables we can employ arbitrary pure functions as linear maps
--   by lifting them using <a>arr</a>, or build them by using the monad
--   instance for Map r b. As a consequence Map is an instance of, well,
--   almost everything.
newtype Map r b a
Map :: ((a -> r) -> b -> r) -> Map r b a

-- | extract a linear functional from a linear map
($@) :: Map r b a -> b -> Covector r a
infixr 0 $@
multMap :: Coalgebra r c => Map r (c, c) c
unitMap :: CounitalCoalgebra r c => Map r () c

-- | (inefficiently) combine a linear combination of basis vectors to make
--   a map. arrMap :: (Monoidal r, Semiring r) =&gt; (b -&gt; [(r, a)])
--   -&gt; Map r b a arrMap f = Map $ k b -&gt; sum [ r * k a | (r, a)
--   &lt;- f b ]
comultMap :: Algebra r a => Map r a (a, a)
counitMap :: UnitalAlgebra r a => Map r a ()
invMap :: InvolutiveCoalgebra r c => Map r c c
coinvMap :: InvolutiveAlgebra r a => Map r a a
antipodeMap :: HopfAlgebra r h => Map r h h

-- | convolution given an associative algebra and coassociative coalgebra
convolveMap :: (Algebra r a, Coalgebra r c) => Map r a c -> Map r a c -> Map r a c
instance Control.Category.Category (Numeric.Map.Map r)
instance Data.Semigroupoid.Semigroupoid (Numeric.Map.Map r)
instance GHC.Base.Functor (Numeric.Map.Map r b)
instance Data.Functor.Bind.Class.Apply (Numeric.Map.Map r b)
instance GHC.Base.Applicative (Numeric.Map.Map r b)
instance Data.Functor.Bind.Class.Bind (Numeric.Map.Map r b)
instance GHC.Base.Monad (Numeric.Map.Map r b)
instance Control.Arrow.Arrow (Numeric.Map.Map r)
instance Control.Arrow.ArrowApply (Numeric.Map.Map r)
instance Control.Monad.Reader.Class.MonadReader b (Numeric.Map.Map r b)
instance Numeric.Algebra.Class.Monoidal r => Control.Arrow.ArrowZero (Numeric.Map.Map r)
instance Numeric.Algebra.Class.Monoidal r => Control.Arrow.ArrowPlus (Numeric.Map.Map r)
instance Control.Arrow.ArrowChoice (Numeric.Map.Map r)
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Map.Map r b a)
instance Numeric.Algebra.Class.Coalgebra r m => Numeric.Algebra.Class.Multiplicative (Numeric.Map.Map r b m)
instance Numeric.Algebra.Unital.CounitalCoalgebra r m => Numeric.Algebra.Unital.Unital (Numeric.Map.Map r b m)
instance Numeric.Algebra.Class.Coalgebra r m => Numeric.Algebra.Class.Semiring (Numeric.Map.Map r b m)
instance Numeric.Algebra.Class.Coalgebra r m => Numeric.Algebra.Class.LeftModule (Numeric.Map.Map r b m) (Numeric.Map.Map r b m)
instance Numeric.Algebra.Class.LeftModule r s => Numeric.Algebra.Class.LeftModule r (Numeric.Map.Map s b m)
instance Numeric.Algebra.Class.Coalgebra r m => Numeric.Algebra.Class.RightModule (Numeric.Map.Map r b m) (Numeric.Map.Map r b m)
instance Numeric.Algebra.Class.RightModule r s => Numeric.Algebra.Class.RightModule r (Numeric.Map.Map s b m)
instance Numeric.Additive.Class.Additive r => Data.Functor.Alt.Alt (Numeric.Map.Map r b)
instance Numeric.Algebra.Class.Monoidal r => Data.Functor.Plus.Plus (Numeric.Map.Map r b)
instance Numeric.Algebra.Class.Monoidal r => GHC.Base.Alternative (Numeric.Map.Map r b)
instance Numeric.Algebra.Class.Monoidal r => GHC.Base.MonadPlus (Numeric.Map.Map r b)
instance Numeric.Algebra.Class.Monoidal s => Numeric.Algebra.Class.Monoidal (Numeric.Map.Map s b a)
instance Numeric.Additive.Class.Abelian s => Numeric.Additive.Class.Abelian (Numeric.Map.Map s b a)
instance Numeric.Additive.Group.Group s => Numeric.Additive.Group.Group (Numeric.Map.Map s b a)
instance (Numeric.Algebra.Commutative.Commutative m, Numeric.Algebra.Class.Coalgebra r m) => Numeric.Algebra.Commutative.Commutative (Numeric.Map.Map r b m)
instance (Numeric.Rig.Class.Rig r, Numeric.Algebra.Unital.CounitalCoalgebra r m) => Numeric.Rig.Class.Rig (Numeric.Map.Map r b m)
instance (Numeric.Ring.Class.Ring r, Numeric.Algebra.Unital.CounitalCoalgebra r m) => Numeric.Ring.Class.Ring (Numeric.Map.Map r a m)

module Numeric.Log
newtype Log r
Log :: r -> Log r
[runLog] :: Log r -> r
instance Numeric.Algebra.Class.Multiplicative r => Numeric.Additive.Class.Additive (Numeric.Log.Log r)
instance Numeric.Algebra.Unital.Unital r => Numeric.Algebra.Class.LeftModule GHC.Natural.Natural (Numeric.Log.Log r)
instance Numeric.Algebra.Unital.Unital r => Numeric.Algebra.Class.RightModule GHC.Natural.Natural (Numeric.Log.Log r)
instance Numeric.Algebra.Unital.Unital r => Numeric.Algebra.Class.Monoidal (Numeric.Log.Log r)
instance Numeric.Algebra.Division.Division r => Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer (Numeric.Log.Log r)
instance Numeric.Algebra.Division.Division r => Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer (Numeric.Log.Log r)
instance Numeric.Algebra.Division.Division r => Numeric.Additive.Group.Group (Numeric.Log.Log r)
instance Numeric.Algebra.Commutative.Commutative r => Numeric.Additive.Class.Abelian (Numeric.Log.Log r)
instance Numeric.Algebra.Idempotent.Band r => Numeric.Additive.Class.Idempotent (Numeric.Log.Log r)
instance Numeric.Algebra.Factorable.Factorable r => Numeric.Additive.Class.Partitionable (Numeric.Log.Log r)

module Numeric.Exp
newtype Exp r
Exp :: r -> Exp r
[runExp] :: Exp r -> r
instance Numeric.Additive.Class.Additive r => Numeric.Algebra.Class.Multiplicative (Numeric.Exp.Exp r)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Unital.Unital (Numeric.Exp.Exp r)
instance Numeric.Additive.Group.Group r => Numeric.Algebra.Division.Division (Numeric.Exp.Exp r)
instance Numeric.Additive.Class.Abelian r => Numeric.Algebra.Commutative.Commutative (Numeric.Exp.Exp r)
instance Numeric.Additive.Class.Idempotent r => Numeric.Algebra.Idempotent.Band (Numeric.Exp.Exp r)
instance Numeric.Additive.Class.Partitionable r => Numeric.Algebra.Factorable.Factorable (Numeric.Exp.Exp r)

module Numeric.Decidable.Nilpotent

-- | An element <tt>x</tt> is nilpotent if there exists <tt>n</tt> s.t.
--   <tt>pow1p x n</tt> is zero.
class (Monoidal r, Multiplicative r) => DecidableNilpotent r
isNilpotent :: DecidableNilpotent r => r -> Bool
instance Numeric.Decidable.Nilpotent.DecidableNilpotent ()
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Types.Bool
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Natural.Natural
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Integer.Type.Integer
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Types.Int
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Int.Int8
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Int.Int16
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Int.Int32
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Int.Int64
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Word.Word8
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Word.Word16
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Word.Word32
instance Numeric.Decidable.Nilpotent.DecidableNilpotent GHC.Word.Word64
instance (Numeric.Decidable.Nilpotent.DecidableNilpotent a, Numeric.Decidable.Nilpotent.DecidableNilpotent b) => Numeric.Decidable.Nilpotent.DecidableNilpotent (a, b)
instance (Numeric.Decidable.Nilpotent.DecidableNilpotent a, Numeric.Decidable.Nilpotent.DecidableNilpotent b, Numeric.Decidable.Nilpotent.DecidableNilpotent c) => Numeric.Decidable.Nilpotent.DecidableNilpotent (a, b, c)
instance (Numeric.Decidable.Nilpotent.DecidableNilpotent a, Numeric.Decidable.Nilpotent.DecidableNilpotent b, Numeric.Decidable.Nilpotent.DecidableNilpotent c, Numeric.Decidable.Nilpotent.DecidableNilpotent d) => Numeric.Decidable.Nilpotent.DecidableNilpotent (a, b, c, d)
instance (Numeric.Decidable.Nilpotent.DecidableNilpotent a, Numeric.Decidable.Nilpotent.DecidableNilpotent b, Numeric.Decidable.Nilpotent.DecidableNilpotent c, Numeric.Decidable.Nilpotent.DecidableNilpotent d, Numeric.Decidable.Nilpotent.DecidableNilpotent e) => Numeric.Decidable.Nilpotent.DecidableNilpotent (a, b, c, d, e)

module Numeric.Coalgebra.Trigonometric
class Trigonometric r
cos :: Trigonometric r => r
sin :: Trigonometric r => r
data TrigBasis
Cos :: TrigBasis
Sin :: TrigBasis
data Trig a
Trig :: a -> a -> Trig a
instance Data.Data.Data a => Data.Data.Data (Numeric.Coalgebra.Trigonometric.Trig a)
instance GHC.Read.Read a => GHC.Read.Read (Numeric.Coalgebra.Trigonometric.Trig a)
instance GHC.Show.Show a => GHC.Show.Show (Numeric.Coalgebra.Trigonometric.Trig a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Numeric.Coalgebra.Trigonometric.Trig a)
instance Data.Data.Data Numeric.Coalgebra.Trigonometric.TrigBasis
instance GHC.Enum.Bounded Numeric.Coalgebra.Trigonometric.TrigBasis
instance GHC.Arr.Ix Numeric.Coalgebra.Trigonometric.TrigBasis
instance GHC.Enum.Enum Numeric.Coalgebra.Trigonometric.TrigBasis
instance GHC.Read.Read Numeric.Coalgebra.Trigonometric.TrigBasis
instance GHC.Show.Show Numeric.Coalgebra.Trigonometric.TrigBasis
instance GHC.Classes.Ord Numeric.Coalgebra.Trigonometric.TrigBasis
instance GHC.Classes.Eq Numeric.Coalgebra.Trigonometric.TrigBasis
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Coalgebra.Trigonometric.Trig r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Complex.Class.Complicated (Numeric.Coalgebra.Trigonometric.Trig r)
instance Numeric.Rig.Class.Rig r => Numeric.Coalgebra.Trigonometric.Class.Trigonometric (Numeric.Coalgebra.Trigonometric.Trig r)
instance Data.Functor.Rep.Representable Numeric.Coalgebra.Trigonometric.Trig
instance Data.Distributive.Distributive Numeric.Coalgebra.Trigonometric.Trig
instance GHC.Base.Functor Numeric.Coalgebra.Trigonometric.Trig
instance Data.Functor.Bind.Class.Apply Numeric.Coalgebra.Trigonometric.Trig
instance GHC.Base.Applicative Numeric.Coalgebra.Trigonometric.Trig
instance Data.Functor.Bind.Class.Bind Numeric.Coalgebra.Trigonometric.Trig
instance GHC.Base.Monad Numeric.Coalgebra.Trigonometric.Trig
instance Control.Monad.Reader.Class.MonadReader Numeric.Coalgebra.Trigonometric.TrigBasis Numeric.Coalgebra.Trigonometric.Trig
instance Data.Foldable.Foldable Numeric.Coalgebra.Trigonometric.Trig
instance Data.Traversable.Traversable Numeric.Coalgebra.Trigonometric.Trig
instance Data.Semigroup.Foldable.Class.Foldable1 Numeric.Coalgebra.Trigonometric.Trig
instance Data.Semigroup.Traversable.Class.Traversable1 Numeric.Coalgebra.Trigonometric.Trig
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Coalgebra.Trigonometric.Trig r)
instance Numeric.Algebra.Class.LeftModule r s => Numeric.Algebra.Class.LeftModule r (Numeric.Coalgebra.Trigonometric.Trig s)
instance Numeric.Algebra.Class.RightModule r s => Numeric.Algebra.Class.RightModule r (Numeric.Coalgebra.Trigonometric.Trig s)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (Numeric.Coalgebra.Trigonometric.Trig r)
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (Numeric.Coalgebra.Trigonometric.Trig r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Coalgebra.Trigonometric.Trig r)
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (Numeric.Coalgebra.Trigonometric.Trig r)
instance Numeric.Additive.Class.Partitionable r => Numeric.Additive.Class.Partitionable (Numeric.Coalgebra.Trigonometric.Trig r)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Class.Multiplicative (Numeric.Coalgebra.Trigonometric.Trig k)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Commutative.Commutative (Numeric.Coalgebra.Trigonometric.Trig k)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Class.Semiring (Numeric.Coalgebra.Trigonometric.Trig k)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Ring.Class.Ring k) => Numeric.Algebra.Unital.Unital (Numeric.Coalgebra.Trigonometric.Trig k)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Rig.Class.Rig (Numeric.Coalgebra.Trigonometric.Trig r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Ring.Class.Ring (Numeric.Coalgebra.Trigonometric.Trig r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.LeftModule (Numeric.Coalgebra.Trigonometric.Trig r) (Numeric.Coalgebra.Trigonometric.Trig r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.RightModule (Numeric.Coalgebra.Trigonometric.Trig r) (Numeric.Coalgebra.Trigonometric.Trig r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r, Numeric.Algebra.Involutive.InvolutiveMultiplication r) => Numeric.Algebra.Involutive.InvolutiveMultiplication (Numeric.Coalgebra.Trigonometric.Trig r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Algebra.Involutive.InvolutiveSemiring (Numeric.Coalgebra.Trigonometric.Trig r)
instance Numeric.Algebra.Distinguished.Class.Distinguished Numeric.Coalgebra.Trigonometric.TrigBasis
instance Numeric.Algebra.Complex.Class.Complicated Numeric.Coalgebra.Trigonometric.TrigBasis
instance Numeric.Coalgebra.Trigonometric.Class.Trigonometric Numeric.Coalgebra.Trigonometric.TrigBasis
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Coalgebra.Trigonometric.TrigBasis -> r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Complex.Class.Complicated (Numeric.Coalgebra.Trigonometric.TrigBasis -> r)
instance Numeric.Rig.Class.Rig r => Numeric.Coalgebra.Trigonometric.Class.Trigonometric (Numeric.Coalgebra.Trigonometric.TrigBasis -> r)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Class.Algebra k Numeric.Coalgebra.Trigonometric.TrigBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Unital.UnitalAlgebra k Numeric.Coalgebra.Trigonometric.TrigBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Class.Coalgebra k Numeric.Coalgebra.Trigonometric.TrigBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Unital.Bialgebra k Numeric.Coalgebra.Trigonometric.TrigBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Additive.Group.Group k, Numeric.Algebra.Involutive.InvolutiveSemiring k) => Numeric.Algebra.Involutive.InvolutiveAlgebra k Numeric.Coalgebra.Trigonometric.TrigBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Additive.Group.Group k, Numeric.Algebra.Involutive.InvolutiveSemiring k) => Numeric.Algebra.Involutive.InvolutiveCoalgebra k Numeric.Coalgebra.Trigonometric.TrigBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Additive.Group.Group k, Numeric.Algebra.Involutive.InvolutiveSemiring k) => Numeric.Algebra.Hopf.HopfAlgebra k Numeric.Coalgebra.Trigonometric.TrigBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Unital.CounitalCoalgebra k Numeric.Coalgebra.Trigonometric.TrigBasis

module Numeric.Coalgebra.Quaternion
class Distinguished t
e :: Distinguished t => t
class Distinguished r => Complicated r
i :: Complicated r => r
class Complicated t => Hamiltonian t
j :: Hamiltonian t => t
k :: Hamiltonian t => t
data QuaternionBasis'
E' :: QuaternionBasis'
I' :: QuaternionBasis'
J' :: QuaternionBasis'
K' :: QuaternionBasis'
data Quaternion' a
Quaternion' :: a -> a -> a -> a -> Quaternion' a

-- | Cayley-Dickson quaternion isomorphism (one way)
complicate' :: Complicated c => QuaternionBasis' -> (c, c)
vectorPart' :: (Representable f, Rep f ~ QuaternionBasis') => f r -> (r, r, r)
scalarPart' :: (Representable f, Rep f ~ QuaternionBasis') => f r -> r
instance Data.Data.Data a => Data.Data.Data (Numeric.Coalgebra.Quaternion.Quaternion' a)
instance GHC.Read.Read a => GHC.Read.Read (Numeric.Coalgebra.Quaternion.Quaternion' a)
instance GHC.Show.Show a => GHC.Show.Show (Numeric.Coalgebra.Quaternion.Quaternion' a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Numeric.Coalgebra.Quaternion.Quaternion' a)
instance Data.Data.Data Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance GHC.Arr.Ix Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance GHC.Enum.Bounded Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance GHC.Show.Show Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance GHC.Read.Read Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance GHC.Enum.Enum Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance GHC.Classes.Ord Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance GHC.Classes.Eq Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Complex.Class.Complicated (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Quaternion.Class.Hamiltonian (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance Data.Functor.Rep.Representable Numeric.Coalgebra.Quaternion.Quaternion'
instance Data.Distributive.Distributive Numeric.Coalgebra.Quaternion.Quaternion'
instance GHC.Base.Functor Numeric.Coalgebra.Quaternion.Quaternion'
instance Data.Functor.Bind.Class.Apply Numeric.Coalgebra.Quaternion.Quaternion'
instance GHC.Base.Applicative Numeric.Coalgebra.Quaternion.Quaternion'
instance Data.Functor.Bind.Class.Bind Numeric.Coalgebra.Quaternion.Quaternion'
instance GHC.Base.Monad Numeric.Coalgebra.Quaternion.Quaternion'
instance Control.Monad.Reader.Class.MonadReader Numeric.Coalgebra.Quaternion.QuaternionBasis' Numeric.Coalgebra.Quaternion.Quaternion'
instance Data.Foldable.Foldable Numeric.Coalgebra.Quaternion.Quaternion'
instance Data.Traversable.Traversable Numeric.Coalgebra.Quaternion.Quaternion'
instance Data.Semigroup.Foldable.Class.Foldable1 Numeric.Coalgebra.Quaternion.Quaternion'
instance Data.Semigroup.Traversable.Class.Traversable1 Numeric.Coalgebra.Quaternion.Quaternion'
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance Numeric.Algebra.Class.LeftModule r s => Numeric.Algebra.Class.LeftModule r (Numeric.Coalgebra.Quaternion.Quaternion' s)
instance Numeric.Algebra.Class.RightModule r s => Numeric.Algebra.Class.RightModule r (Numeric.Coalgebra.Quaternion.Quaternion' s)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance Numeric.Additive.Class.Partitionable r => Numeric.Additive.Class.Partitionable (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Class.Multiplicative (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Class.Semiring (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Ring.Class.Ring r) => Numeric.Algebra.Unital.Unital (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Ring.Class.Ring r) => Numeric.Rig.Class.Rig (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Ring.Class.Ring r) => Numeric.Ring.Class.Ring (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.LeftModule (Numeric.Coalgebra.Quaternion.Quaternion' r) (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.RightModule (Numeric.Coalgebra.Quaternion.Quaternion' r) (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Involutive.InvolutiveMultiplication (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Quadrance.Class.Quadrance r (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Ring.Class.Ring r, Numeric.Algebra.Division.Division r) => Numeric.Algebra.Division.Division (Numeric.Coalgebra.Quaternion.Quaternion' r)
instance Numeric.Algebra.Distinguished.Class.Distinguished Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance Numeric.Algebra.Complex.Class.Complicated Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance Numeric.Algebra.Quaternion.Class.Hamiltonian Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Coalgebra.Quaternion.QuaternionBasis' -> r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Complex.Class.Complicated (Numeric.Coalgebra.Quaternion.QuaternionBasis' -> r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Quaternion.Class.Hamiltonian (Numeric.Coalgebra.Quaternion.QuaternionBasis' -> r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Class.Algebra r Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Unital.UnitalAlgebra r Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.Coalgebra r Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Unital.CounitalCoalgebra r Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Unital.Bialgebra r Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Involutive.InvolutiveAlgebra r Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Involutive.InvolutiveCoalgebra r Numeric.Coalgebra.Quaternion.QuaternionBasis'
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Hopf.HopfAlgebra r Numeric.Coalgebra.Quaternion.QuaternionBasis'

module Numeric.Coalgebra.Hyperbolic
class Hyperbolic r
cosh :: Hyperbolic r => r
sinh :: Hyperbolic r => r
data HyperBasis
Cosh :: HyperBasis
Sinh :: HyperBasis
data Hyper a
Hyper :: a -> a -> Hyper a
instance Data.Data.Data a => Data.Data.Data (Numeric.Coalgebra.Hyperbolic.Hyper a)
instance GHC.Read.Read a => GHC.Read.Read (Numeric.Coalgebra.Hyperbolic.Hyper a)
instance GHC.Show.Show a => GHC.Show.Show (Numeric.Coalgebra.Hyperbolic.Hyper a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Numeric.Coalgebra.Hyperbolic.Hyper a)
instance Data.Data.Data Numeric.Coalgebra.Hyperbolic.HyperBasis
instance GHC.Enum.Bounded Numeric.Coalgebra.Hyperbolic.HyperBasis
instance GHC.Arr.Ix Numeric.Coalgebra.Hyperbolic.HyperBasis
instance GHC.Enum.Enum Numeric.Coalgebra.Hyperbolic.HyperBasis
instance GHC.Read.Read Numeric.Coalgebra.Hyperbolic.HyperBasis
instance GHC.Show.Show Numeric.Coalgebra.Hyperbolic.HyperBasis
instance GHC.Classes.Ord Numeric.Coalgebra.Hyperbolic.HyperBasis
instance GHC.Classes.Eq Numeric.Coalgebra.Hyperbolic.HyperBasis
instance Numeric.Rig.Class.Rig r => Numeric.Coalgebra.Hyperbolic.Class.Hyperbolic (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance Data.Functor.Rep.Representable Numeric.Coalgebra.Hyperbolic.Hyper
instance Data.Distributive.Distributive Numeric.Coalgebra.Hyperbolic.Hyper
instance GHC.Base.Functor Numeric.Coalgebra.Hyperbolic.Hyper
instance Data.Functor.Bind.Class.Apply Numeric.Coalgebra.Hyperbolic.Hyper
instance GHC.Base.Applicative Numeric.Coalgebra.Hyperbolic.Hyper
instance Data.Functor.Bind.Class.Bind Numeric.Coalgebra.Hyperbolic.Hyper
instance GHC.Base.Monad Numeric.Coalgebra.Hyperbolic.Hyper
instance Control.Monad.Reader.Class.MonadReader Numeric.Coalgebra.Hyperbolic.HyperBasis Numeric.Coalgebra.Hyperbolic.Hyper
instance Data.Foldable.Foldable Numeric.Coalgebra.Hyperbolic.Hyper
instance Data.Traversable.Traversable Numeric.Coalgebra.Hyperbolic.Hyper
instance Data.Semigroup.Foldable.Class.Foldable1 Numeric.Coalgebra.Hyperbolic.Hyper
instance Data.Semigroup.Traversable.Class.Traversable1 Numeric.Coalgebra.Hyperbolic.Hyper
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance Numeric.Algebra.Class.LeftModule r s => Numeric.Algebra.Class.LeftModule r (Numeric.Coalgebra.Hyperbolic.Hyper s)
instance Numeric.Algebra.Class.RightModule r s => Numeric.Algebra.Class.RightModule r (Numeric.Coalgebra.Hyperbolic.Hyper s)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance Numeric.Additive.Class.Partitionable r => Numeric.Additive.Class.Partitionable (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Class.Multiplicative (Numeric.Coalgebra.Hyperbolic.Hyper k)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Commutative.Commutative (Numeric.Coalgebra.Hyperbolic.Hyper k)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Class.Semiring (Numeric.Coalgebra.Hyperbolic.Hyper k)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Rig.Class.Rig k) => Numeric.Algebra.Unital.Unital (Numeric.Coalgebra.Hyperbolic.Hyper k)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rig.Class.Rig r) => Numeric.Rig.Class.Rig (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Ring.Class.Ring (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Class.LeftModule (Numeric.Coalgebra.Hyperbolic.Hyper r) (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Class.RightModule (Numeric.Coalgebra.Hyperbolic.Hyper r) (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Additive.Group.Group r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Algebra.Involutive.InvolutiveMultiplication (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Additive.Group.Group r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Algebra.Involutive.InvolutiveSemiring (Numeric.Coalgebra.Hyperbolic.Hyper r)
instance Numeric.Coalgebra.Hyperbolic.Class.Hyperbolic Numeric.Coalgebra.Hyperbolic.HyperBasis
instance Numeric.Rig.Class.Rig r => Numeric.Coalgebra.Hyperbolic.Class.Hyperbolic (Numeric.Coalgebra.Hyperbolic.HyperBasis -> r)
instance Numeric.Algebra.Class.Semiring k => Numeric.Algebra.Class.Algebra k Numeric.Coalgebra.Hyperbolic.HyperBasis
instance Numeric.Algebra.Class.Semiring k => Numeric.Algebra.Unital.UnitalAlgebra k Numeric.Coalgebra.Hyperbolic.HyperBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Class.Coalgebra k Numeric.Coalgebra.Hyperbolic.HyperBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Unital.CounitalCoalgebra k Numeric.Coalgebra.Hyperbolic.HyperBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Unital.Bialgebra k Numeric.Coalgebra.Hyperbolic.HyperBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Additive.Group.Group k, Numeric.Algebra.Involutive.InvolutiveSemiring k) => Numeric.Algebra.Involutive.InvolutiveAlgebra k Numeric.Coalgebra.Hyperbolic.HyperBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Additive.Group.Group k, Numeric.Algebra.Involutive.InvolutiveSemiring k) => Numeric.Algebra.Involutive.InvolutiveCoalgebra k Numeric.Coalgebra.Hyperbolic.HyperBasis
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Additive.Group.Group k, Numeric.Algebra.Involutive.InvolutiveSemiring k) => Numeric.Algebra.Hopf.HopfAlgebra k Numeric.Coalgebra.Hyperbolic.HyperBasis

module Numeric.Coalgebra.Geometric
newtype BasisCoblade m
BasisCoblade :: Word64 -> BasisCoblade m
[runBasisCoblade] :: BasisCoblade m -> Word64
type Comultivector r m = Covector r (BasisCoblade m)
class Eigenbasis m
euclidean :: Eigenbasis m => proxy m -> Bool
antiEuclidean :: Eigenbasis m => proxy m -> Bool
v :: Eigenbasis m => m -> BasisCoblade m
e :: Eigenbasis m => Int -> m
class (Ring r, Eigenbasis m) => Eigenmetric r m
metric :: Eigenmetric r m => m -> r
newtype Euclidean
Euclidean :: Int -> Euclidean
grade :: BasisCoblade m -> Int
filterGrade :: Monoidal r => BasisCoblade m -> Int -> Comultivector r m
reverse :: Group r => BasisCoblade m -> Comultivector r m
gradeInversion :: Group r => BasisCoblade m -> Comultivector r m
cliffordConjugate :: Group r => BasisCoblade m -> Comultivector r m
geometric :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
outer :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
contractL :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
contractR :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
hestenes :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
dot :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
liftProduct :: (BasisCoblade m -> BasisCoblade m -> Comultivector r m) -> Comultivector r m -> Comultivector r m -> Comultivector r m
instance Numeric.Ring.Class.Ring Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Rig.Class.Rig Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Class.Semiring Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Commutative.Commutative Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Unital.Unital Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Involutive.InvolutiveSemiring Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Involutive.InvolutiveMultiplication Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Involutive.TriviallyInvolutive Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Class.Multiplicative Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Additive.Group.Group Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Additive.Class.Abelian Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Class.Monoidal Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Additive.Class.Additive Numeric.Coalgebra.Geometric.Euclidean
instance Data.Data.Data Numeric.Coalgebra.Geometric.Euclidean
instance GHC.Real.Integral Numeric.Coalgebra.Geometric.Euclidean
instance GHC.Real.Real Numeric.Coalgebra.Geometric.Euclidean
instance GHC.Enum.Enum Numeric.Coalgebra.Geometric.Euclidean
instance GHC.Arr.Ix Numeric.Coalgebra.Geometric.Euclidean
instance GHC.Num.Num Numeric.Coalgebra.Geometric.Euclidean
instance GHC.Read.Read Numeric.Coalgebra.Geometric.Euclidean
instance GHC.Show.Show Numeric.Coalgebra.Geometric.Euclidean
instance GHC.Classes.Ord Numeric.Coalgebra.Geometric.Euclidean
instance GHC.Classes.Eq Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Decidable.Units.DecidableUnits (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Decidable.Associates.DecidableAssociates (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Decidable.Zero.DecidableZero (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Rig.Class.Rig (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Algebra.Class.Semiring (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Algebra.Commutative.Commutative (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Algebra.Unital.Unital (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Algebra.Class.Multiplicative (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Algebra.Class.Monoidal (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Algebra.Class.RightModule GHC.Natural.Natural (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Algebra.Class.LeftModule GHC.Natural.Natural (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Additive.Class.Abelian (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Additive.Class.Additive (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance GHC.Real.Integral (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance GHC.Real.Real (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance GHC.Read.Read (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance GHC.Show.Show (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance GHC.Enum.Bounded (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance GHC.Arr.Ix (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance GHC.Enum.Enum (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Data.Bits.Bits (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance GHC.Num.Num (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance GHC.Classes.Ord (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance GHC.Classes.Eq (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Coalgebra.Geometric.Eigenbasis Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Ring.Class.Ring r => Numeric.Coalgebra.Geometric.Eigenmetric r Numeric.Coalgebra.Geometric.Euclidean
instance Numeric.Coalgebra.Geometric.Eigenmetric r m => Numeric.Algebra.Class.Coalgebra r (Numeric.Coalgebra.Geometric.BasisCoblade m)
instance Numeric.Coalgebra.Geometric.Eigenmetric r m => Numeric.Algebra.Unital.CounitalCoalgebra r (Numeric.Coalgebra.Geometric.BasisCoblade m)

module Numeric.Coalgebra.Dual
class Distinguished t
e :: Distinguished t => t
class Distinguished t => Infinitesimal t
d :: Infinitesimal t => t

-- | dual number basis, D^2 = 0. D /= 0.
data DualBasis'
E :: DualBasis'
D :: DualBasis'
data Dual' a
Dual' :: a -> a -> Dual' a
instance Data.Data.Data a => Data.Data.Data (Numeric.Coalgebra.Dual.Dual' a)
instance GHC.Read.Read a => GHC.Read.Read (Numeric.Coalgebra.Dual.Dual' a)
instance GHC.Show.Show a => GHC.Show.Show (Numeric.Coalgebra.Dual.Dual' a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Numeric.Coalgebra.Dual.Dual' a)
instance Data.Data.Data Numeric.Coalgebra.Dual.DualBasis'
instance GHC.Enum.Bounded Numeric.Coalgebra.Dual.DualBasis'
instance GHC.Arr.Ix Numeric.Coalgebra.Dual.DualBasis'
instance GHC.Enum.Enum Numeric.Coalgebra.Dual.DualBasis'
instance GHC.Read.Read Numeric.Coalgebra.Dual.DualBasis'
instance GHC.Show.Show Numeric.Coalgebra.Dual.DualBasis'
instance GHC.Classes.Ord Numeric.Coalgebra.Dual.DualBasis'
instance GHC.Classes.Eq Numeric.Coalgebra.Dual.DualBasis'
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Coalgebra.Dual.Dual' r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Dual.Class.Infinitesimal (Numeric.Coalgebra.Dual.Dual' r)
instance Data.Functor.Rep.Representable Numeric.Coalgebra.Dual.Dual'
instance Data.Distributive.Distributive Numeric.Coalgebra.Dual.Dual'
instance GHC.Base.Functor Numeric.Coalgebra.Dual.Dual'
instance Data.Functor.Bind.Class.Apply Numeric.Coalgebra.Dual.Dual'
instance GHC.Base.Applicative Numeric.Coalgebra.Dual.Dual'
instance Data.Functor.Bind.Class.Bind Numeric.Coalgebra.Dual.Dual'
instance GHC.Base.Monad Numeric.Coalgebra.Dual.Dual'
instance Control.Monad.Reader.Class.MonadReader Numeric.Coalgebra.Dual.DualBasis' Numeric.Coalgebra.Dual.Dual'
instance Data.Foldable.Foldable Numeric.Coalgebra.Dual.Dual'
instance Data.Traversable.Traversable Numeric.Coalgebra.Dual.Dual'
instance Data.Semigroup.Foldable.Class.Foldable1 Numeric.Coalgebra.Dual.Dual'
instance Data.Semigroup.Traversable.Class.Traversable1 Numeric.Coalgebra.Dual.Dual'
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Coalgebra.Dual.Dual' r)
instance Numeric.Algebra.Class.LeftModule r s => Numeric.Algebra.Class.LeftModule r (Numeric.Coalgebra.Dual.Dual' s)
instance Numeric.Algebra.Class.RightModule r s => Numeric.Algebra.Class.RightModule r (Numeric.Coalgebra.Dual.Dual' s)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (Numeric.Coalgebra.Dual.Dual' r)
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (Numeric.Coalgebra.Dual.Dual' r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Coalgebra.Dual.Dual' r)
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (Numeric.Coalgebra.Dual.Dual' r)
instance Numeric.Additive.Class.Partitionable r => Numeric.Additive.Class.Partitionable (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.Multiplicative (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Commutative.Commutative (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.Semiring (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Algebra.Unital.Unital (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Rig.Class.Rig (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Ring.Class.Ring (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.LeftModule (Numeric.Coalgebra.Dual.Dual' r) (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.RightModule (Numeric.Coalgebra.Dual.Dual' r) (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Algebra.Involutive.InvolutiveMultiplication (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Algebra.Involutive.InvolutiveSemiring (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Quadrance.Class.Quadrance r (Numeric.Coalgebra.Dual.Dual' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Ring.Division.DivisionRing r) => Numeric.Algebra.Division.Division (Numeric.Coalgebra.Dual.Dual' r)
instance Numeric.Algebra.Distinguished.Class.Distinguished Numeric.Coalgebra.Dual.DualBasis'
instance Numeric.Algebra.Dual.Class.Infinitesimal Numeric.Coalgebra.Dual.DualBasis'
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Coalgebra.Dual.DualBasis' -> r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Dual.Class.Infinitesimal (Numeric.Coalgebra.Dual.DualBasis' -> r)
instance Numeric.Algebra.Class.Semiring k => Numeric.Algebra.Class.Algebra k Numeric.Coalgebra.Dual.DualBasis'
instance Numeric.Algebra.Class.Semiring k => Numeric.Algebra.Unital.UnitalAlgebra k Numeric.Coalgebra.Dual.DualBasis'
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Class.Coalgebra k Numeric.Coalgebra.Dual.DualBasis'
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Unital.CounitalCoalgebra k Numeric.Coalgebra.Dual.DualBasis'
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Unital.Bialgebra k Numeric.Coalgebra.Dual.DualBasis'
instance (Numeric.Algebra.Involutive.InvolutiveSemiring k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Involutive.InvolutiveAlgebra k Numeric.Coalgebra.Dual.DualBasis'
instance (Numeric.Algebra.Involutive.InvolutiveSemiring k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Involutive.InvolutiveCoalgebra k Numeric.Coalgebra.Dual.DualBasis'
instance (Numeric.Algebra.Involutive.InvolutiveSemiring k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Hopf.HopfAlgebra k Numeric.Coalgebra.Dual.DualBasis'

module Numeric.Algebra.Quaternion
class Distinguished t
e :: Distinguished t => t
class Distinguished r => Complicated r
i :: Complicated r => r
class Complicated t => Hamiltonian t
j :: Hamiltonian t => t
k :: Hamiltonian t => t
data QuaternionBasis
E :: QuaternionBasis
I :: QuaternionBasis
J :: QuaternionBasis
K :: QuaternionBasis
data Quaternion a
Quaternion :: a -> a -> a -> a -> Quaternion a

-- | Cayley-Dickson quaternion isomorphism (one way)
complicate :: Complicated c => QuaternionBasis -> (c, c)
vectorPart :: (Representable f, Rep f ~ QuaternionBasis) => f r -> (r, r, r)
scalarPart :: (Representable f, Rep f ~ QuaternionBasis) => f r -> r
instance Data.Data.Data a => Data.Data.Data (Numeric.Algebra.Quaternion.Quaternion a)
instance GHC.Read.Read a => GHC.Read.Read (Numeric.Algebra.Quaternion.Quaternion a)
instance GHC.Show.Show a => GHC.Show.Show (Numeric.Algebra.Quaternion.Quaternion a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Numeric.Algebra.Quaternion.Quaternion a)
instance Data.Data.Data Numeric.Algebra.Quaternion.QuaternionBasis
instance GHC.Arr.Ix Numeric.Algebra.Quaternion.QuaternionBasis
instance GHC.Enum.Bounded Numeric.Algebra.Quaternion.QuaternionBasis
instance GHC.Show.Show Numeric.Algebra.Quaternion.QuaternionBasis
instance GHC.Read.Read Numeric.Algebra.Quaternion.QuaternionBasis
instance GHC.Enum.Enum Numeric.Algebra.Quaternion.QuaternionBasis
instance GHC.Classes.Ord Numeric.Algebra.Quaternion.QuaternionBasis
instance GHC.Classes.Eq Numeric.Algebra.Quaternion.QuaternionBasis
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Algebra.Quaternion.Quaternion r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Complex.Class.Complicated (Numeric.Algebra.Quaternion.Quaternion r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Quaternion.Class.Hamiltonian (Numeric.Algebra.Quaternion.Quaternion r)
instance Data.Functor.Rep.Representable Numeric.Algebra.Quaternion.Quaternion
instance Data.Distributive.Distributive Numeric.Algebra.Quaternion.Quaternion
instance GHC.Base.Functor Numeric.Algebra.Quaternion.Quaternion
instance Data.Functor.Bind.Class.Apply Numeric.Algebra.Quaternion.Quaternion
instance GHC.Base.Applicative Numeric.Algebra.Quaternion.Quaternion
instance Data.Functor.Bind.Class.Bind Numeric.Algebra.Quaternion.Quaternion
instance GHC.Base.Monad Numeric.Algebra.Quaternion.Quaternion
instance Control.Monad.Reader.Class.MonadReader Numeric.Algebra.Quaternion.QuaternionBasis Numeric.Algebra.Quaternion.Quaternion
instance Data.Foldable.Foldable Numeric.Algebra.Quaternion.Quaternion
instance Data.Traversable.Traversable Numeric.Algebra.Quaternion.Quaternion
instance Data.Semigroup.Foldable.Class.Foldable1 Numeric.Algebra.Quaternion.Quaternion
instance Data.Semigroup.Traversable.Class.Traversable1 Numeric.Algebra.Quaternion.Quaternion
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Algebra.Quaternion.Quaternion r)
instance Numeric.Algebra.Class.LeftModule r s => Numeric.Algebra.Class.LeftModule r (Numeric.Algebra.Quaternion.Quaternion s)
instance Numeric.Algebra.Class.RightModule r s => Numeric.Algebra.Class.RightModule r (Numeric.Algebra.Quaternion.Quaternion s)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (Numeric.Algebra.Quaternion.Quaternion r)
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (Numeric.Algebra.Quaternion.Quaternion r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Algebra.Quaternion.Quaternion r)
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (Numeric.Algebra.Quaternion.Quaternion r)
instance Numeric.Additive.Class.Partitionable r => Numeric.Additive.Class.Partitionable (Numeric.Algebra.Quaternion.Quaternion r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.Multiplicative (Numeric.Algebra.Quaternion.Quaternion r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.Semiring (Numeric.Algebra.Quaternion.Quaternion r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Ring.Class.Ring r) => Numeric.Algebra.Unital.Unital (Numeric.Algebra.Quaternion.Quaternion r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Ring.Class.Ring r) => Numeric.Rig.Class.Rig (Numeric.Algebra.Quaternion.Quaternion r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Ring.Class.Ring r) => Numeric.Ring.Class.Ring (Numeric.Algebra.Quaternion.Quaternion r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.LeftModule (Numeric.Algebra.Quaternion.Quaternion r) (Numeric.Algebra.Quaternion.Quaternion r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.RightModule (Numeric.Algebra.Quaternion.Quaternion r) (Numeric.Algebra.Quaternion.Quaternion r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Involutive.InvolutiveMultiplication (Numeric.Algebra.Quaternion.Quaternion r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Quadrance.Class.Quadrance r (Numeric.Algebra.Quaternion.Quaternion r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Ring.Class.Ring r, Numeric.Algebra.Division.Division r) => Numeric.Algebra.Division.Division (Numeric.Algebra.Quaternion.Quaternion r)
instance Numeric.Algebra.Distinguished.Class.Distinguished Numeric.Algebra.Quaternion.QuaternionBasis
instance Numeric.Algebra.Complex.Class.Complicated Numeric.Algebra.Quaternion.QuaternionBasis
instance Numeric.Algebra.Quaternion.Class.Hamiltonian Numeric.Algebra.Quaternion.QuaternionBasis
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Algebra.Quaternion.QuaternionBasis -> r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Complex.Class.Complicated (Numeric.Algebra.Quaternion.QuaternionBasis -> r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Quaternion.Class.Hamiltonian (Numeric.Algebra.Quaternion.QuaternionBasis -> r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.Algebra r Numeric.Algebra.Quaternion.QuaternionBasis
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Unital.UnitalAlgebra r Numeric.Algebra.Quaternion.QuaternionBasis
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.Coalgebra r Numeric.Algebra.Quaternion.QuaternionBasis
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Unital.CounitalCoalgebra r Numeric.Algebra.Quaternion.QuaternionBasis
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Unital.Bialgebra r Numeric.Algebra.Quaternion.QuaternionBasis
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Involutive.InvolutiveAlgebra r Numeric.Algebra.Quaternion.QuaternionBasis
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Involutive.InvolutiveCoalgebra r Numeric.Algebra.Quaternion.QuaternionBasis
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Hopf.HopfAlgebra r Numeric.Algebra.Quaternion.QuaternionBasis

module Numeric.Algebra.Hyperbolic
class Hyperbolic r
cosh :: Hyperbolic r => r
sinh :: Hyperbolic r => r
data HyperBasis'
Cosh' :: HyperBasis'
Sinh' :: HyperBasis'
data Hyper' a
Hyper' :: a -> a -> Hyper' a
instance Data.Data.Data a => Data.Data.Data (Numeric.Algebra.Hyperbolic.Hyper' a)
instance GHC.Read.Read a => GHC.Read.Read (Numeric.Algebra.Hyperbolic.Hyper' a)
instance GHC.Show.Show a => GHC.Show.Show (Numeric.Algebra.Hyperbolic.Hyper' a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Numeric.Algebra.Hyperbolic.Hyper' a)
instance Data.Data.Data Numeric.Algebra.Hyperbolic.HyperBasis'
instance GHC.Enum.Bounded Numeric.Algebra.Hyperbolic.HyperBasis'
instance GHC.Arr.Ix Numeric.Algebra.Hyperbolic.HyperBasis'
instance GHC.Enum.Enum Numeric.Algebra.Hyperbolic.HyperBasis'
instance GHC.Read.Read Numeric.Algebra.Hyperbolic.HyperBasis'
instance GHC.Show.Show Numeric.Algebra.Hyperbolic.HyperBasis'
instance GHC.Classes.Ord Numeric.Algebra.Hyperbolic.HyperBasis'
instance GHC.Classes.Eq Numeric.Algebra.Hyperbolic.HyperBasis'
instance Numeric.Rig.Class.Rig r => Numeric.Coalgebra.Hyperbolic.Class.Hyperbolic (Numeric.Algebra.Hyperbolic.Hyper' r)
instance Data.Functor.Rep.Representable Numeric.Algebra.Hyperbolic.Hyper'
instance Data.Distributive.Distributive Numeric.Algebra.Hyperbolic.Hyper'
instance GHC.Base.Functor Numeric.Algebra.Hyperbolic.Hyper'
instance Data.Functor.Bind.Class.Apply Numeric.Algebra.Hyperbolic.Hyper'
instance GHC.Base.Applicative Numeric.Algebra.Hyperbolic.Hyper'
instance Data.Functor.Bind.Class.Bind Numeric.Algebra.Hyperbolic.Hyper'
instance GHC.Base.Monad Numeric.Algebra.Hyperbolic.Hyper'
instance Control.Monad.Reader.Class.MonadReader Numeric.Algebra.Hyperbolic.HyperBasis' Numeric.Algebra.Hyperbolic.Hyper'
instance Data.Foldable.Foldable Numeric.Algebra.Hyperbolic.Hyper'
instance Data.Traversable.Traversable Numeric.Algebra.Hyperbolic.Hyper'
instance Data.Semigroup.Foldable.Class.Foldable1 Numeric.Algebra.Hyperbolic.Hyper'
instance Data.Semigroup.Traversable.Class.Traversable1 Numeric.Algebra.Hyperbolic.Hyper'
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Algebra.Hyperbolic.Hyper' r)
instance Numeric.Algebra.Class.LeftModule r s => Numeric.Algebra.Class.LeftModule r (Numeric.Algebra.Hyperbolic.Hyper' s)
instance Numeric.Algebra.Class.RightModule r s => Numeric.Algebra.Class.RightModule r (Numeric.Algebra.Hyperbolic.Hyper' s)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (Numeric.Algebra.Hyperbolic.Hyper' r)
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (Numeric.Algebra.Hyperbolic.Hyper' r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Algebra.Hyperbolic.Hyper' r)
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (Numeric.Algebra.Hyperbolic.Hyper' r)
instance Numeric.Additive.Class.Partitionable r => Numeric.Additive.Class.Partitionable (Numeric.Algebra.Hyperbolic.Hyper' r)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Class.Multiplicative (Numeric.Algebra.Hyperbolic.Hyper' k)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Commutative.Commutative (Numeric.Algebra.Hyperbolic.Hyper' k)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Class.Semiring (Numeric.Algebra.Hyperbolic.Hyper' k)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Rig.Class.Rig k) => Numeric.Algebra.Unital.Unital (Numeric.Algebra.Hyperbolic.Hyper' k)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rig.Class.Rig r) => Numeric.Rig.Class.Rig (Numeric.Algebra.Hyperbolic.Hyper' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Ring.Class.Ring (Numeric.Algebra.Hyperbolic.Hyper' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Class.LeftModule (Numeric.Algebra.Hyperbolic.Hyper' r) (Numeric.Algebra.Hyperbolic.Hyper' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Class.Semiring r) => Numeric.Algebra.Class.RightModule (Numeric.Algebra.Hyperbolic.Hyper' r) (Numeric.Algebra.Hyperbolic.Hyper' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Involutive.InvolutiveMultiplication (Numeric.Algebra.Hyperbolic.Hyper' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Involutive.InvolutiveSemiring (Numeric.Algebra.Hyperbolic.Hyper' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Rng.Class.Rng r) => Numeric.Quadrance.Class.Quadrance r (Numeric.Algebra.Hyperbolic.Hyper' r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Ring.Division.DivisionRing r) => Numeric.Algebra.Division.Division (Numeric.Algebra.Hyperbolic.Hyper' r)
instance Numeric.Coalgebra.Hyperbolic.Class.Hyperbolic Numeric.Algebra.Hyperbolic.HyperBasis'
instance Numeric.Rig.Class.Rig r => Numeric.Coalgebra.Hyperbolic.Class.Hyperbolic (Numeric.Algebra.Hyperbolic.HyperBasis' -> r)
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Class.Algebra k Numeric.Algebra.Hyperbolic.HyperBasis'
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Monoidal k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Unital.UnitalAlgebra k Numeric.Algebra.Hyperbolic.HyperBasis'
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Monoidal k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Class.Coalgebra k Numeric.Algebra.Hyperbolic.HyperBasis'
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Monoidal k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Unital.CounitalCoalgebra k Numeric.Algebra.Hyperbolic.HyperBasis'
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Algebra.Class.Monoidal k, Numeric.Algebra.Class.Semiring k) => Numeric.Algebra.Unital.Bialgebra k Numeric.Algebra.Hyperbolic.HyperBasis'
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Additive.Group.Group k, Numeric.Algebra.Involutive.InvolutiveSemiring k) => Numeric.Algebra.Involutive.InvolutiveAlgebra k Numeric.Algebra.Hyperbolic.HyperBasis'
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Additive.Group.Group k, Numeric.Algebra.Involutive.InvolutiveSemiring k) => Numeric.Algebra.Involutive.InvolutiveCoalgebra k Numeric.Algebra.Hyperbolic.HyperBasis'
instance (Numeric.Algebra.Commutative.Commutative k, Numeric.Additive.Group.Group k, Numeric.Algebra.Involutive.InvolutiveSemiring k) => Numeric.Algebra.Hopf.HopfAlgebra k Numeric.Algebra.Hyperbolic.HyperBasis'

module Numeric.Algebra.Dual
class Distinguished t
e :: Distinguished t => t
class Distinguished t => Infinitesimal t
d :: Infinitesimal t => t

-- | dual number basis, D^2 = 0. D /= 0.
data DualBasis
E :: DualBasis
D :: DualBasis
data Dual a
Dual :: a -> a -> Dual a
instance Data.Data.Data a => Data.Data.Data (Numeric.Algebra.Dual.Dual a)
instance GHC.Read.Read a => GHC.Read.Read (Numeric.Algebra.Dual.Dual a)
instance GHC.Show.Show a => GHC.Show.Show (Numeric.Algebra.Dual.Dual a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Numeric.Algebra.Dual.Dual a)
instance Data.Data.Data Numeric.Algebra.Dual.DualBasis
instance GHC.Enum.Bounded Numeric.Algebra.Dual.DualBasis
instance GHC.Arr.Ix Numeric.Algebra.Dual.DualBasis
instance GHC.Enum.Enum Numeric.Algebra.Dual.DualBasis
instance GHC.Read.Read Numeric.Algebra.Dual.DualBasis
instance GHC.Show.Show Numeric.Algebra.Dual.DualBasis
instance GHC.Classes.Ord Numeric.Algebra.Dual.DualBasis
instance GHC.Classes.Eq Numeric.Algebra.Dual.DualBasis
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Algebra.Dual.Dual r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Dual.Class.Infinitesimal (Numeric.Algebra.Dual.Dual r)
instance Data.Functor.Rep.Representable Numeric.Algebra.Dual.Dual
instance Data.Distributive.Distributive Numeric.Algebra.Dual.Dual
instance GHC.Base.Functor Numeric.Algebra.Dual.Dual
instance Data.Functor.Bind.Class.Apply Numeric.Algebra.Dual.Dual
instance GHC.Base.Applicative Numeric.Algebra.Dual.Dual
instance Data.Functor.Bind.Class.Bind Numeric.Algebra.Dual.Dual
instance GHC.Base.Monad Numeric.Algebra.Dual.Dual
instance Control.Monad.Reader.Class.MonadReader Numeric.Algebra.Dual.DualBasis Numeric.Algebra.Dual.Dual
instance Data.Foldable.Foldable Numeric.Algebra.Dual.Dual
instance Data.Traversable.Traversable Numeric.Algebra.Dual.Dual
instance Data.Semigroup.Foldable.Class.Foldable1 Numeric.Algebra.Dual.Dual
instance Data.Semigroup.Traversable.Class.Traversable1 Numeric.Algebra.Dual.Dual
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Algebra.Dual.Dual r)
instance Numeric.Algebra.Class.LeftModule r s => Numeric.Algebra.Class.LeftModule r (Numeric.Algebra.Dual.Dual s)
instance Numeric.Algebra.Class.RightModule r s => Numeric.Algebra.Class.RightModule r (Numeric.Algebra.Dual.Dual s)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (Numeric.Algebra.Dual.Dual r)
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (Numeric.Algebra.Dual.Dual r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Algebra.Dual.Dual r)
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (Numeric.Algebra.Dual.Dual r)
instance Numeric.Additive.Class.Partitionable r => Numeric.Additive.Class.Partitionable (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.Multiplicative (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Commutative.Commutative (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.Semiring (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Algebra.Unital.Unital (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Rig.Class.Rig (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Ring.Class.Ring (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.LeftModule (Numeric.Algebra.Dual.Dual r) (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.RightModule (Numeric.Algebra.Dual.Dual r) (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Algebra.Involutive.InvolutiveMultiplication (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Algebra.Involutive.InvolutiveSemiring (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Quadrance.Class.Quadrance r (Numeric.Algebra.Dual.Dual r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Ring.Division.DivisionRing r) => Numeric.Algebra.Division.Division (Numeric.Algebra.Dual.Dual r)
instance Numeric.Algebra.Distinguished.Class.Distinguished Numeric.Algebra.Dual.DualBasis
instance Numeric.Algebra.Dual.Class.Infinitesimal Numeric.Algebra.Dual.DualBasis
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Algebra.Dual.DualBasis -> r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Dual.Class.Infinitesimal (Numeric.Algebra.Dual.DualBasis -> r)
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Class.Algebra k Numeric.Algebra.Dual.DualBasis
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Unital.UnitalAlgebra k Numeric.Algebra.Dual.DualBasis
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Class.Coalgebra k Numeric.Algebra.Dual.DualBasis
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Unital.CounitalCoalgebra k Numeric.Algebra.Dual.DualBasis
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Unital.Bialgebra k Numeric.Algebra.Dual.DualBasis
instance (Numeric.Algebra.Involutive.InvolutiveSemiring k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Involutive.InvolutiveAlgebra k Numeric.Algebra.Dual.DualBasis
instance (Numeric.Algebra.Involutive.InvolutiveSemiring k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Involutive.InvolutiveCoalgebra k Numeric.Algebra.Dual.DualBasis
instance (Numeric.Algebra.Involutive.InvolutiveSemiring k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Hopf.HopfAlgebra k Numeric.Algebra.Dual.DualBasis

module Numeric.Algebra.Complex
class Distinguished t
e :: Distinguished t => t
class Distinguished r => Complicated r
i :: Complicated r => r
data ComplexBasis
E :: ComplexBasis
I :: ComplexBasis
data Complex a
Complex :: a -> a -> Complex a
realPart :: (Representable f, Rep f ~ ComplexBasis) => f a -> a
imagPart :: (Representable f, Rep f ~ ComplexBasis) => f a -> a

-- | half of the Cayley-Dickson quaternion isomorphism
uncomplicate :: Hamiltonian q => ComplexBasis -> ComplexBasis -> q
instance Data.Data.Data a => Data.Data.Data (Numeric.Algebra.Complex.Complex a)
instance GHC.Read.Read a => GHC.Read.Read (Numeric.Algebra.Complex.Complex a)
instance GHC.Show.Show a => GHC.Show.Show (Numeric.Algebra.Complex.Complex a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Numeric.Algebra.Complex.Complex a)
instance Data.Data.Data Numeric.Algebra.Complex.ComplexBasis
instance GHC.Enum.Bounded Numeric.Algebra.Complex.ComplexBasis
instance GHC.Arr.Ix Numeric.Algebra.Complex.ComplexBasis
instance GHC.Enum.Enum Numeric.Algebra.Complex.ComplexBasis
instance GHC.Read.Read Numeric.Algebra.Complex.ComplexBasis
instance GHC.Show.Show Numeric.Algebra.Complex.ComplexBasis
instance GHC.Classes.Ord Numeric.Algebra.Complex.ComplexBasis
instance GHC.Classes.Eq Numeric.Algebra.Complex.ComplexBasis
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Algebra.Complex.Complex r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Complex.Class.Complicated (Numeric.Algebra.Complex.Complex r)
instance Data.Functor.Rep.Representable Numeric.Algebra.Complex.Complex
instance Data.Distributive.Distributive Numeric.Algebra.Complex.Complex
instance GHC.Base.Functor Numeric.Algebra.Complex.Complex
instance Data.Functor.Bind.Class.Apply Numeric.Algebra.Complex.Complex
instance GHC.Base.Applicative Numeric.Algebra.Complex.Complex
instance Data.Functor.Bind.Class.Bind Numeric.Algebra.Complex.Complex
instance GHC.Base.Monad Numeric.Algebra.Complex.Complex
instance Control.Monad.Reader.Class.MonadReader Numeric.Algebra.Complex.ComplexBasis Numeric.Algebra.Complex.Complex
instance Data.Foldable.Foldable Numeric.Algebra.Complex.Complex
instance Data.Traversable.Traversable Numeric.Algebra.Complex.Complex
instance Data.Semigroup.Foldable.Class.Foldable1 Numeric.Algebra.Complex.Complex
instance Data.Semigroup.Traversable.Class.Traversable1 Numeric.Algebra.Complex.Complex
instance Numeric.Additive.Class.Additive r => Numeric.Additive.Class.Additive (Numeric.Algebra.Complex.Complex r)
instance Numeric.Algebra.Class.LeftModule r s => Numeric.Algebra.Class.LeftModule r (Numeric.Algebra.Complex.Complex s)
instance Numeric.Algebra.Class.RightModule r s => Numeric.Algebra.Class.RightModule r (Numeric.Algebra.Complex.Complex s)
instance Numeric.Algebra.Class.Monoidal r => Numeric.Algebra.Class.Monoidal (Numeric.Algebra.Complex.Complex r)
instance Numeric.Additive.Group.Group r => Numeric.Additive.Group.Group (Numeric.Algebra.Complex.Complex r)
instance Numeric.Additive.Class.Abelian r => Numeric.Additive.Class.Abelian (Numeric.Algebra.Complex.Complex r)
instance Numeric.Additive.Class.Idempotent r => Numeric.Additive.Class.Idempotent (Numeric.Algebra.Complex.Complex r)
instance Numeric.Additive.Class.Partitionable r => Numeric.Additive.Class.Partitionable (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.Multiplicative (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Involutive.TriviallyInvolutive r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Commutative.Commutative (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.Semiring (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Algebra.Unital.Unital (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Rig.Class.Rig (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Ring.Class.Ring r) => Numeric.Ring.Class.Ring (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.LeftModule (Numeric.Algebra.Complex.Complex r) (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r) => Numeric.Algebra.Class.RightModule (Numeric.Algebra.Complex.Complex r) (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r, Numeric.Algebra.Involutive.InvolutiveMultiplication r) => Numeric.Algebra.Involutive.InvolutiveMultiplication (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Algebra.Involutive.InvolutiveSemiring (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Rng.Class.Rng r, Numeric.Algebra.Involutive.InvolutiveSemiring r) => Numeric.Quadrance.Class.Quadrance r (Numeric.Algebra.Complex.Complex r)
instance (Numeric.Algebra.Commutative.Commutative r, Numeric.Algebra.Involutive.InvolutiveSemiring r, Numeric.Ring.Division.DivisionRing r) => Numeric.Algebra.Division.Division (Numeric.Algebra.Complex.Complex r)
instance Numeric.Algebra.Distinguished.Class.Distinguished Numeric.Algebra.Complex.ComplexBasis
instance Numeric.Algebra.Complex.Class.Complicated Numeric.Algebra.Complex.ComplexBasis
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Distinguished.Class.Distinguished (Numeric.Algebra.Complex.ComplexBasis -> r)
instance Numeric.Rig.Class.Rig r => Numeric.Algebra.Complex.Class.Complicated (Numeric.Algebra.Complex.ComplexBasis -> r)
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Class.Algebra k Numeric.Algebra.Complex.ComplexBasis
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Unital.UnitalAlgebra k Numeric.Algebra.Complex.ComplexBasis
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Class.Coalgebra k Numeric.Algebra.Complex.ComplexBasis
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Unital.CounitalCoalgebra k Numeric.Algebra.Complex.ComplexBasis
instance Numeric.Rng.Class.Rng k => Numeric.Algebra.Unital.Bialgebra k Numeric.Algebra.Complex.ComplexBasis
instance (Numeric.Algebra.Involutive.InvolutiveSemiring k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Involutive.InvolutiveAlgebra k Numeric.Algebra.Complex.ComplexBasis
instance (Numeric.Algebra.Involutive.InvolutiveSemiring k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Involutive.InvolutiveCoalgebra k Numeric.Algebra.Complex.ComplexBasis
instance (Numeric.Algebra.Involutive.InvolutiveSemiring k, Numeric.Rng.Class.Rng k) => Numeric.Algebra.Hopf.HopfAlgebra k Numeric.Algebra.Complex.ComplexBasis

module Numeric.Domain.Class

-- | (Integral) domain is the integral semiring.
class (ZeroProductSemiring d, Ring d) => Domain d

module Numeric.Domain.GCD
class (IntegralDomain d, UnitNormalForm d, DecidableZero d) => GCDDomain d
gcd :: GCDDomain d => d -> d -> d
gcd :: (GCDDomain d, (PID d)) => d -> d -> d
reduceFraction :: GCDDomain d => d -> d -> (d, d)
lcm :: GCDDomain d => d -> d -> d
gcd' :: GCDDomain r => NonEmpty r -> r

module Numeric.Field.Fraction

-- | Fraction field <tt>k(D)</tt> of <a>GCDDomain</a> domain <tt>D</tt>.
data Fraction d
numerator :: Fraction t -> t
denominator :: Fraction t -> t

-- | Convenient synonym for <a>Fraction</a>.
type Ratio = Fraction
(%) :: (GCDDomain d) => d -> d -> Fraction d
infixl 7 %
instance (GHC.Classes.Eq d, GHC.Show.Show d, Numeric.Algebra.Unital.Unital d) => GHC.Show.Show (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Semiring.ZeroProduct.ZeroProductSemiring (Numeric.Field.Fraction.Fraction d)
instance (GHC.Classes.Eq d, Numeric.Domain.Internal.GCDDomain d) => GHC.Classes.Eq (Numeric.Field.Fraction.Fraction d)
instance (GHC.Classes.Ord d, Numeric.Domain.Internal.GCDDomain d) => GHC.Classes.Ord (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Algebra.Division.Division (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Algebra.Commutative.Commutative (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Decidable.Zero.DecidableZero (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Decidable.Units.DecidableUnits (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Decidable.Associates.DecidableAssociates (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Ring.Class.Ring (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Additive.Class.Abelian (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Algebra.Class.Semiring (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Additive.Group.Group (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Algebra.Class.Monoidal (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Algebra.Class.LeftModule GHC.Integer.Type.Integer (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Algebra.Class.RightModule GHC.Integer.Type.Integer (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Algebra.Class.LeftModule GHC.Natural.Natural (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Algebra.Class.RightModule GHC.Natural.Natural (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Additive.Class.Additive (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Algebra.Unital.Unital (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Algebra.Class.Multiplicative (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Rig.Class.Rig (Numeric.Field.Fraction.Fraction d)
instance (Numeric.Rig.Characteristic.Characteristic d, Numeric.Domain.Internal.GCDDomain d) => Numeric.Rig.Characteristic.Characteristic (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Algebra.Unital.UnitNormalForm.UnitNormalForm (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Domain.Internal.IntegralDomain (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Domain.Internal.GCDDomain (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Domain.Internal.UFD (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Domain.Internal.PID (Numeric.Field.Fraction.Fraction d)
instance Numeric.Domain.Internal.GCDDomain d => Numeric.Domain.Internal.Euclidean (Numeric.Field.Fraction.Fraction d)
