[auto ekmett@gmail.com**20090403014208] { hunk ./doc/html/monoids/Data-Field-VectorSpace.html 22 ->monoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkshow/hide Instances
Field f => Field (Dual f)
Field f => Field (Self f)
Field f => Field (FromString f)
Field f => Field (ReducedBy f s)
monoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmodule Data.Groupmodule Data.Groupshow/hide Instances
MultiplicativeGroup a => MultiplicativeGroup (Dual a)
MultiplicativeGroup g => MultiplicativeGroup (Self g)
MultiplicativeGroup g => MultiplicativeGroup (FromString g)
MultiplicativeGroup g => MultiplicativeGroup (ReducedBy g s)
monoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkGroup a => Group (ReducedBy a s)monoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkRightSemiNearRing m => RightSemiNearRing (FromString m)RightSemiNearRing m => RightSemiNearRingSemiRing r => SemiRing m) r)MultiplicativeGroup g => MultiplicativeGroup (FromString g)Ring r => Ring (FromString r)Field f => Field (FromString f)monoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkMultiplicative m => Multiplicative (Dual m)Multiplicative m => Multiplicative (ReducedBy m s)monoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkdata ReducedBy m s = Reduction {
getReduction :: m
}(Reflects s (a -> m), Monoid m) => Reducer a (ReducedBy m s)
data ReducedBy m s Source
monoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkRightSemiNearRing m => RightSemiNearRing (Self m) r)monoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkLeftSemiNearRingRightSemiNearRingRightSemiNearRingLeftSemiNearRingmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce framework a => LeftSemiNearRing a => RightSemiNearRing a => RightSemiNearRing a => LeftSemiNearRingmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce framework a) => LeftSemiNearRing a) => RightSemiNearRing a) => RightSemiNearRing a) => LeftSemiNearRingmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce framework(LeftSemiNearRing(RightSemiNearRing r m) => LeftSemiNearRing r m) => RightSemiNearRing(RightSemiNearRing(LeftSemiNearRing r m) => RightSemiNearRing r m) => LeftSemiNearRingmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkLeftSemiNearRingRightSemiNearRingRightSemiNearRingLeftSemiNearRingmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkRightSemiNearRing m => LeftSemiNearRing (Dual m)monoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce framework a) => LeftSemiNearRing a) => RightSemiNearRing a) => RightSemiNearRing a) => LeftSemiNearRing a => LeftSemiNearRing a => RightSemiNearRing a => RightSemiNearRing a => LeftSemiNearRingmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce framework a) => LeftSemiNearRing a) => RightSemiNearRing a) => RightSemiNearRing a) => LeftSemiNearRingmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkSemiRing r => SemiRing (Dual r)monoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkRing r => Ring (Dual r)monoids-0.1.23: Monoids, specialized containers and a general map/reduce framework (Index)monoids-0.1.24: Monoids, specialized containers and a general map/reduce framework (Index)monoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceReducedByData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Multiplicative, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpacemonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.23: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.24: Monoids, specialized containers and a general map/reduce framework -class(Ringa,MultiplicativeGroupa)=>Fielda +importData.Monoid.Self +importData.Monoid.FromString +importData.Monoid.Reducer + +class(Ringa,MultiplicativeGroupa)=>Fielda + +instanceFieldf=>Field(Dualf) +instanceFieldf=>Field(Selff) +instanceFieldf=>Field(FromStringf) +instanceFieldf=>Field(ReducedByfs) hunk ./doc/html/monoids/src/Data-Group-Multiplicative.html 22 -,MultiplicativeGroup -,over -,under -,grecip -)where - -importData.Monoid.Multiplicative - --- | Minimal definition over or grecip -classMultiplicativeg=>MultiplicativeGroupgwhere --- | @x / y@ -over::g->g->g --- | @x \ y@ -under::g->g->g -grecip::g->g - -x`under`y=grecipx`times`y -x`over`y=x`times`grecipy -grecipx=one`over`x +,moduleData.Group +,MultiplicativeGroup +,over +,under +,grecip +)where + +importData.Monoid.Multiplicative +importData.Group +importData.Monoid.Self +importData.Monoid.FromString +importData.Monoid.Reducer + + +-- | Minimal definition over or grecip +classMultiplicativeg=>MultiplicativeGroupgwhere +-- | @x / y@ +over::g->g->g +-- | @x \ y@ +under::g->g->g +grecip::g->g + +x`under`y=grecipx`times`y +x`over`y=x`times`grecipy +grecipx=one`over`x + +instanceMultiplicativeGroupg=>MultiplicativeGroup(Selfg)where +Selfx`over`Selfy=Self(x`over`y) +Selfx`under`Selfy=Self(x`under`y) +grecip(Selfx)=Self(grecipx) + +instanceMultiplicativeGroupg=>MultiplicativeGroup(FromStringg)where +FromStringx`over`FromStringy=FromString(x`over`y) +FromStringx`under`FromStringy=FromString(x`under`y) +grecip(FromStringx)=FromString(grecipx) + +instanceMultiplicativeGroupg=>MultiplicativeGroup(ReducedBygs)where +Reductionx`over`Reductiony=Reduction(x`over`y) +Reductionx`under`Reductiony=Reduction(x`under`y) +grecip(Reductionx)=Reduction(grecipx) + +instanceMultiplicativeGroupa=>MultiplicativeGroup(Duala)where +grecip=Dual.grecip.getDual hunk ./doc/html/monoids/src/Data-Group.html 33 - -infixl6`minus` - --- | Minimal complete definition: 'gnegate' or 'minus' -classMonoida=>Groupawhere --- additive inverse -gnegate::a->a -minus::a->a->a -gsubtract::a->a->a - -gnegate=minuszero -a`minus`b=a`plus`gnegateb -a`gsubtract`b=gnegatea`plus`b - -instanceNuma=>Group(Suma)where -gnegate=Sum.negate.getSum -Suma`minus`Sumb=Sum(a-b) - -instanceFractionala=>Group(Producta)where -gnegate=Product.negate.getProduct -Producta`minus`Productb=Product(a/b) - -instanceGroupa=>Group(Duala)where -gnegate=Dual.gnegate.getDual - -instanceGroupa=>Group(Selfa)where -gnegate=Self.gnegate.getSelf -Selfa`minus`Selfb=Self(a`minus`b) - -instanceGroupa=>Group(FromStringa)where -gnegate=FromString.gnegate.getFromString -FromStringa`minus`FromStringb=FromString(a`minus`b) +importData.Monoid.Reducer + +infixl6`minus` + +-- | Minimal complete definition: 'gnegate' or 'minus' +classMonoida=>Groupawhere +-- additive inverse +gnegate::a->a +minus::a->a->a +gsubtract::a->a->a + +gnegate=minuszero +a`minus`b=a`plus`gnegateb +a`gsubtract`b=gnegatea`plus`b + +instanceNuma=>Group(Suma)where +gnegate=Sum.negate.getSum +Suma`minus`Sumb=Sum(a-b) + +instanceFractionala=>Group(Producta)where +gnegate=Product.negate.getProduct +Producta`minus`Productb=Product(a/b) + +instanceGroupa=>Group(Duala)where +gnegate=Dual.gnegate.getDual + +instanceGroupa=>Group(Selfa)where +gnegate=Self.gnegate.getSelf +Selfa`minus`Selfb=Self(a`minus`b) + +instanceGroupa=>Group(FromStringa)where +gnegate=FromString.gnegate.getFromString +FromStringa`minus`FromStringb=FromString(a`minus`b) + +instanceGroupa=>Group(ReducedByas)where +gnegate=Reduction.gnegate.getReduction +Reductiona`minus`Reductionb=Reduction(a`minus`b) + hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 9 -
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, UndecidableInstances #-}
+
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, UndecidableInstances, TypeOperators #-}
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 91
--- | Convert a 'Multiplicative' into a 'Monoid'. Mnemonic: @Log a + Log b = Log (a * b)@
-data Log m = Log { getLog :: m }
-
-instance Multiplicative m => Monoid (Log m) where
-    mempty = Log one
-    Log a `mappend` Log b = Log (a `times` b)
-
--- | Convert a 'Monoid' into a 'Multiplicative'. Mnemonic: @Exp a * Exp b = Exp (a + b)@
-data Exp m = Exp { getExp :: m }
-
-instance Monoid m => Multiplicative (Exp m) where
-    one = Exp mempty
-    Exp a `times` Exp b = Exp (a `mappend` b)
-
--- simple monoid transformer instances
-instance Multiplicative m => Multiplicative (Self m) where
-    one = Self one  
-    Self a `times` Self b = Self (a `times` b)
-
-instance Multiplicative m => Multiplicative (FromString m) where
-    one = FromString one
-    FromString a `times` FromString b = FromString (a `times` b)
-
--- the goal of this is that I can make left seminearrings out of any 'Alternative' wrapped around a monoid
--- in particular its useful for containers
-
-instance Monoid m => Multiplicative [m] where
-    one = return mempty
-    times = liftM2 mappend
-
-instance Monoid m => Multiplicative (Seq m) where
-    one = return mempty
-    times = liftM2 mappend
+instance Multiplicative m => Multiplicative (Dual m) where
+    one = Dual one
+    Dual x `times` Dual y = Dual (y `times` x)
+
+instance Multiplicative m => Multiplicative (m `ReducedBy` s) where
+    one = Reduction one
+    Reduction x `times` Reduction y = Reduction (x `times` y)
+
+-- | Convert a 'Multiplicative' into a 'Monoid'. Mnemonic: @Log a + Log b = Log (a * b)@
+data Log m = Log { getLog :: m }
+
+instance Multiplicative m => Monoid (Log m) where
+    mempty = Log one
+    Log a `mappend` Log b = Log (a `times` b)
+
+-- | Convert a 'Monoid' into a 'Multiplicative'. Mnemonic: @Exp a * Exp b = Exp (a + b)@
+data Exp m = Exp { getExp :: m }
+
+instance Monoid m => Multiplicative (Exp m) where
+    one = Exp mempty
+    Exp a `times` Exp b = Exp (a `mappend` b)
+
+-- simple monoid transformer instances
+instance Multiplicative m => Multiplicative (Self m) where
+    one = Self one  
+    Self a `times` Self b = Self (a `times` b)
+
+instance Multiplicative m => Multiplicative (FromString m) where
+    one = FromString one
+    FromString a `times` FromString b = FromString (a `times` b)
+
+-- the goal of this is that I can make left seminearrings out of any 'Alternative' wrapped around a monoid
+-- in particular its useful for containers
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 125
--- and things that can't quite be a Monad in Haskell
-instance (Measured v m, Monoid m) => Multiplicative (FingerTree v m) where
-    one = singleton mempty
-    xss `times` yss = getSelf $ mapReduce (flip fmap' yss . mappend) xss
-
--- but it can at least serve as a canonical multiplication for any monad. 
-instance Monoid m => Multiplicative (Maybe m) where
-    one = return mempty
-    times = liftM2 mappend
-
-instance Monoid m => Multiplicative (Identity m) where
-    one = return mempty
-    times = liftM2 mappend
-
-instance (Monoid m) => Multiplicative (Cont r m) where
+instance Monoid m => Multiplicative [m] where
+    one = return mempty
+    times = liftM2 mappend
+
+instance Monoid m => Multiplicative (Seq m) where
+    one = return mempty
+    times = liftM2 mappend
+
+-- and things that can't quite be a Monad in Haskell
+instance (Measured v m, Monoid m) => Multiplicative (FingerTree v m) where
+    one = singleton mempty
+    xss `times` yss = getSelf $ mapReduce (flip fmap' yss . mappend) xss
+
+-- but it can at least serve as a canonical multiplication for any monad. 
+instance Monoid m => Multiplicative (Maybe m) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 143
-instance (Monoid w, Monoid m) => Multiplicative (SRWS.RWS r w s m) where
+instance Monoid m => Multiplicative (Identity m) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 147
-instance (Monoid w, Monoid m) => Multiplicative (LRWS.RWS r w s m) where
+instance (Monoid m) => Multiplicative (Cont r m) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 151
-instance Monoid m => Multiplicative (SState.State s m) where
+instance (Monoid w, Monoid m) => Multiplicative (SRWS.RWS r w s m) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 155
-instance Monoid m => Multiplicative (LState.State s m) where
+instance (Monoid w, Monoid m) => Multiplicative (LRWS.RWS r w s m) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 159
-instance Monoid m => Multiplicative (Reader e m) where
+instance Monoid m => Multiplicative (SState.State s m) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 163
-instance (Monoid w, Monoid m) => Multiplicative (SWriter.Writer w m) where
+instance Monoid m => Multiplicative (LState.State s m) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 167
-instance (Monoid w, Monoid m) => Multiplicative (LWriter.Writer w m) where
+instance Monoid m => Multiplicative (Reader e m) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 171
-instance (Monad m, Monoid n) => Multiplicative (ContT r m n) where
-    one = return mempty 
+instance (Monoid w, Monoid m) => Multiplicative (SWriter.Writer w m) where
+    one = return mempty
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 175
-instance (Monad m, Monoid w, Monoid n) => Multiplicative (SRWS.RWST r w s m n) where 
-    one = return mempty 
+instance (Monoid w, Monoid m) => Multiplicative (LWriter.Writer w m) where
+    one = return mempty
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 179
-instance (Monad m, Monoid w, Monoid n) => Multiplicative (LRWS.RWST r w s m n) where 
+instance (Monad m, Monoid n) => Multiplicative (ContT r m n) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 183
-instance (Monad m, Monoid n) => Multiplicative (SState.StateT s m n) where
-    one = return mempty
+instance (Monad m, Monoid w, Monoid n) => Multiplicative (SRWS.RWST r w s m n) where 
+    one = return mempty 
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 187
-instance (Monad m, Monoid n) => Multiplicative (LState.StateT s m n) where
-    one = return mempty
+instance (Monad m, Monoid w, Monoid n) => Multiplicative (LRWS.RWST r w s m n) where 
+    one = return mempty 
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 191
-instance (Monad m, Monoid n) => Multiplicative (ReaderT e m n) where
+instance (Monad m, Monoid n) => Multiplicative (SState.StateT s m n) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 195
-instance (Monad m, Monoid w, Monoid n) => Multiplicative (SWriter.WriterT w m n) where
-    one = return mempty 
+instance (Monad m, Monoid n) => Multiplicative (LState.StateT s m n) where
+    one = return mempty
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 199
-instance (Monad m, Monoid w, Monoid n) => Multiplicative (LWriter.WriterT w m n) where
-    one = return mempty 
+instance (Monad m, Monoid n) => Multiplicative (ReaderT e m n) where
+    one = return mempty
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 203
-instance Monoid n => Multiplicative (IO n) where
-    one = return mempty
+instance (Monad m, Monoid w, Monoid n) => Multiplicative (SWriter.WriterT w m n) where
+    one = return mempty 
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 207
-instance Monoid n => Multiplicative (SST.ST s n) where
-    one = return mempty
+instance (Monad m, Monoid w, Monoid n) => Multiplicative (LWriter.WriterT w m n) where
+    one = return mempty 
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 211
-instance Monoid n => Multiplicative (LST.ST s n) where
+instance Monoid n => Multiplicative (IO n) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 215
-instance Monoid n => Multiplicative (STM n) where
+instance Monoid n => Multiplicative (SST.ST s n) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 219
-instance (Stream s m t, Monoid n) => Multiplicative (ParsecT s u m n) where
+instance Monoid n => Multiplicative (LST.ST s n) where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 223
--- Applicative instances
-
-instance Monoid n => Multiplicative (ZipList n) where
-    one = pure mempty
-    times = liftA2 mappend
-
-instance Monoid m => Multiplicative (Const m a) where
-    one = pure undefined
-    times = liftA2 undefined
+instance Monoid n => Multiplicative (STM n) where
+    one = return mempty
+    times = liftM2 mappend
+
+instance (Stream s m t, Monoid n) => Multiplicative (ParsecT s u m n) where
+    one = return mempty
+    times = liftM2 mappend
+
+-- Applicative instances
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 233
--- Numeric instances
-instance Multiplicative Int where
-    one = 1
-    times = (*)
-
-instance Multiplicative Integer where
-    one = 1
-    times = (*)
-
-instance Integral m => Multiplicative (Ratio m) where
+instance Monoid n => Multiplicative (ZipList n) where
+    one = pure mempty
+    times = liftA2 mappend
+
+instance Monoid m => Multiplicative (Const m a) where
+    one = pure undefined
+    times = liftA2 undefined
+
+-- Numeric instances
+instance Multiplicative Int where
hunk ./doc/html/monoids/src/Data-Monoid-Multiplicative.html 246
+instance Multiplicative Integer where
+    one = 1
+    times = (*)
+
+instance Integral m => Multiplicative (Ratio m) where
+    one = 1
+    times = (*)
+
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 9
-
{-# LANGUAGE UndecidableInstances , FlexibleContexts , MultiParamTypeClasses , FlexibleInstances , GeneralizedNewtypeDeriving #-}
+
{-# LANGUAGE UndecidableInstances , FlexibleContexts , MultiParamTypeClasses , FlexibleInstances , GeneralizedNewtypeDeriving, TypeOperators, ScopedTypeVariables #-}
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 34
-    ) where
-
-import Control.Applicative
-import Control.Monad 
-
-import Data.Monoid
-import Data.Monoid.Instances ()
-
-import Data.Foldable
-import Data.FingerTree
-
-import qualified Data.Sequence as Seq
-import Data.Sequence (Seq)
-
-import qualified Data.Set as Set
-import Data.Set (Set)
-
-import qualified Data.IntSet as IntSet
-import Data.IntSet (IntSet)
-
-import qualified Data.IntMap as IntMap
-import Data.IntMap (IntMap)
-
-import qualified Data.Map as Map
-
-import Data.Map (Map)
-
-import Text.Parsec.Prim
-
---import qualified Data.BitSet as BitSet
---import Data.BitSet (BitSet)
+    , ReducedBy(Reduction,getReduction)
+    ) where
+
+import Control.Applicative
+import Control.Monad 
+
+import Data.Monoid
+import Data.Monoid.Instances ()
+
+import Data.Foldable
+import Data.FingerTree
+
+import qualified Data.Sequence as Seq
+import Data.Sequence (Seq)
+
+import qualified Data.Set as Set
+import Data.Set (Set)
+
+import qualified Data.IntSet as IntSet
+import Data.IntSet (IntSet)
+
+import qualified Data.IntMap as IntMap
+import Data.IntMap (IntMap)
+
+import Data.Reflection
+
+import qualified Data.Map as Map
+
+import Data.Map (Map)
+
+import Text.Parsec.Prim
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 66
--- | This type may be best read infix. A @c `Reducer` m@ is a 'Monoid' @m@ that maps
--- values of type @c@ through @unit@ to values of type @m@. A @c@-'Reducer' may also
--- supply operations which tack-on another @c@ to an existing 'Monoid' @m@ on the left
--- or right. These specialized reductions may be more efficient in some scenarios
--- and are used when appropriate by a 'Generator'. The names 'cons' and 'snoc' work
--- by analogy to the synonymous operations in the list monoid.
---
--- This class deliberately avoids functional-dependencies, so that () can be a @c@-Reducer
--- for all @c@, and so many common reducers can work over multiple types, for instance,
--- First and Last may reduce both @a@ and 'Maybe' @a@. Since a 'Generator' has a fixed element
--- type, the input to the reducer is generally known and extracting from the monoid usually
--- is sufficient to fix the result type. Combinators are available for most scenarios where
--- this is not the case, and the few remaining cases can be handled by using an explicit 
--- type annotation.
---
--- Minimal definition: 'unit' or 'snoc'
-class Monoid m => Reducer c m where
-    -- | Convert a value into a 'Monoid'
-    unit :: c -> m 
-    -- | Append a value to a 'Monoid' for use in left-to-right reduction
-    snoc :: m -> c -> m
-    -- | Prepend a value onto a 'Monoid' for use during right-to-left reduction
-    cons :: c -> m -> m 
-
-    unit = snoc mempty 
-    snoc m = mappend m . unit
-    cons = mappend . unit
-
--- | Apply a 'Reducer' to a 'Foldable' container, after mapping the contents into a suitable form for reduction.
-foldMapReduce :: (Foldable f, e `Reducer` m) => (a -> e) -> f a -> m
-foldMapReduce f = foldMap (unit . f)
-
--- | Apply a 'Reducer' to a 'Foldable' mapping each element through 'unit'
-foldReduce :: (Foldable f, e `Reducer` m) => f e -> m
-foldReduce = foldMap unit
-
-returnUnit :: (Monad m, c `Reducer` n) => c -> m n 
-returnUnit = return . unit
+--import qualified Data.BitSet as BitSet
+--import Data.BitSet (BitSet)
+
+-- | This type may be best read infix. A @c `Reducer` m@ is a 'Monoid' @m@ that maps
+-- values of type @c@ through @unit@ to values of type @m@. A @c@-'Reducer' may also
+-- supply operations which tack-on another @c@ to an existing 'Monoid' @m@ on the left
+-- or right. These specialized reductions may be more efficient in some scenarios
+-- and are used when appropriate by a 'Generator'. The names 'cons' and 'snoc' work
+-- by analogy to the synonymous operations in the list monoid.
+--
+-- This class deliberately avoids functional-dependencies, so that () can be a @c@-Reducer
+-- for all @c@, and so many common reducers can work over multiple types, for instance,
+-- First and Last may reduce both @a@ and 'Maybe' @a@. Since a 'Generator' has a fixed element
+-- type, the input to the reducer is generally known and extracting from the monoid usually
+-- is sufficient to fix the result type. Combinators are available for most scenarios where
+-- this is not the case, and the few remaining cases can be handled by using an explicit 
+-- type annotation.
+--
+-- Minimal definition: 'unit' or 'snoc'
+class Monoid m => Reducer c m where
+    -- | Convert a value into a 'Monoid'
+    unit :: c -> m 
+    -- | Append a value to a 'Monoid' for use in left-to-right reduction
+    snoc :: m -> c -> m
+    -- | Prepend a value onto a 'Monoid' for use during right-to-left reduction
+    cons :: c -> m -> m 
+
+    unit = snoc mempty 
+    snoc m = mappend m . unit
+    cons = mappend . unit
+
+-- | Apply a 'Reducer' to a 'Foldable' container, after mapping the contents into a suitable form for reduction.
+foldMapReduce :: (Foldable f, e `Reducer` m) => (a -> e) -> f a -> m
+foldMapReduce f = foldMap (unit . f)
+
+-- | Apply a 'Reducer' to a 'Foldable' mapping each element through 'unit'
+foldReduce :: (Foldable f, e `Reducer` m) => f e -> m
+foldReduce = foldMap unit
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 105
-pureUnit :: (Applicative f, c `Reducer` n) => c -> f n
-pureUnit = pure . unit
+returnUnit :: (Monad m, c `Reducer` n) => c -> m n 
+returnUnit = return . unit
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 108
-instance (Reducer c m, Reducer c n) => Reducer c (m,n) where
-    unit x = (unit x,unit x)
-    (m,n) `snoc` x = (m `snoc` x, n `snoc` x)
-    x `cons` (m,n) = (x `cons` m, x `cons` n)
-
-instance (Reducer c m, Reducer c n, Reducer c o) => Reducer c (m,n,o) where
-    unit x = (unit x,unit x, unit x)
-    (m,n,o) `snoc` x = (m `snoc` x, n `snoc` x, o `snoc` x)
-    x `cons` (m,n,o) = (x `cons` m, x `cons` n, x `cons` o)
-
-instance (Reducer c m, Reducer c n, Reducer c o, Reducer c p) => Reducer c (m,n,o,p) where
-    unit x = (unit x,unit x, unit x, unit x)
-    (m,n,o,p) `snoc` x = (m `snoc` x, n `snoc` x, o `snoc` x, p `snoc` x)
-    x `cons` (m,n,o,p) = (x `cons` m, x `cons` n, x `cons` o, x `cons` p)
-
-instance Reducer c [c] where
-    unit = return
-    cons = (:)
-    xs `snoc` x = xs ++ [x]
-
-instance Reducer c () where
-    unit _ = ()
-    _ `snoc` _ = ()
-    _ `cons` _ = ()
-
-instance Reducer Bool Any where
-    unit = Any
+pureUnit :: (Applicative f, c `Reducer` n) => c -> f n
+pureUnit = pure . unit
+
+instance (Reducer c m, Reducer c n) => Reducer c (m,n) where
+    unit x = (unit x,unit x)
+    (m,n) `snoc` x = (m `snoc` x, n `snoc` x)
+    x `cons` (m,n) = (x `cons` m, x `cons` n)
+
+instance (Reducer c m, Reducer c n, Reducer c o) => Reducer c (m,n,o) where
+    unit x = (unit x,unit x, unit x)
+    (m,n,o) `snoc` x = (m `snoc` x, n `snoc` x, o `snoc` x)
+    x `cons` (m,n,o) = (x `cons` m, x `cons` n, x `cons` o)
+
+instance (Reducer c m, Reducer c n, Reducer c o, Reducer c p) => Reducer c (m,n,o,p) where
+    unit x = (unit x,unit x, unit x, unit x)
+    (m,n,o,p) `snoc` x = (m `snoc` x, n `snoc` x, o `snoc` x, p `snoc` x)
+    x `cons` (m,n,o,p) = (x `cons` m, x `cons` n, x `cons` o, x `cons` p)
+
+instance Reducer c [c] where
+    unit = return
+    cons = (:)
+    xs `snoc` x = xs ++ [x]
+
+instance Reducer c () where
+    unit _ = ()
+    _ `snoc` _ = ()
+    _ `cons` _ = ()
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 136
-instance Reducer Bool All where
-    unit = All
+instance Reducer Bool Any where
+    unit = Any
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 139
-instance Reducer (a -> a) (Endo a) where
-    unit = Endo
+instance Reducer Bool All where
+    unit = All
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 142
-instance Monoid a => Reducer a (Dual a) where
-    unit = Dual
-    
-instance Num a => Reducer a (Sum a) where
-    unit = Sum
-
-instance Num a => Reducer a (Product a) where
-    unit = Product
+instance Reducer (a -> a) (Endo a) where
+    unit = Endo
+
+instance Monoid a => Reducer a (Dual a) where
+    unit = Dual
+    
+instance Num a => Reducer a (Sum a) where
+    unit = Sum
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 151
-instance Reducer (Maybe a) (First a) where
-    unit = First
+instance Num a => Reducer a (Product a) where
+    unit = Product
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 154
-instance Reducer a (First a) where
-    unit = First . Just
+instance Reducer (Maybe a) (First a) where
+    unit = First
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 157
-instance Reducer (Maybe a) (Last a) where
-    unit = Last
+instance Reducer a (First a) where
+    unit = First . Just
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 160
-instance Reducer a (Last a) where
-    unit = Last . Just
+instance Reducer (Maybe a) (Last a) where
+    unit = Last
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 163
-instance Measured v a => Reducer a (FingerTree v a) where
-    unit = singleton
-    cons = (<|)
-    snoc = (|>) 
-
-instance (Stream s m t, c `Reducer` a) => Reducer c (ParsecT s u m a) where
-    unit = return . unit
+instance Reducer a (Last a) where
+    unit = Last . Just
+
+instance Measured v a => Reducer a (FingerTree v a) where
+    unit = singleton
+    cons = (<|)
+    snoc = (|>) 
hunk ./doc/html/monoids/src/Data-Monoid-Reducer.html 171
-instance Reducer a (Seq a) where
-    unit = Seq.singleton
-    cons = (Seq.<|)
-    snoc = (Seq.|>)
-
-instance Reducer Int IntSet where
-    unit = IntSet.singleton
-    cons = IntSet.insert
-    snoc = flip IntSet.insert -- left bias irrelevant
-
-instance Ord a => Reducer a (Set a) where
-    unit = Set.singleton
-    cons = Set.insert
-    -- pedantic about order in case 'Eq' doesn't implement structural equality
-    snoc s m | Set.member m s = s 
-             | otherwise = Set.insert m s
-
-instance Reducer (Int,v) (IntMap v) where
-    unit = uncurry IntMap.singleton
-    cons = uncurry IntMap.insert
-    snoc = flip . uncurry . IntMap.insertWith $ const id
-
-instance Ord k => Reducer (k,v) (Map k v) where
-    unit = uncurry Map.singleton
-    cons = uncurry Map.insert
-    snoc = flip . uncurry . Map.insertWith $ const id
-
-{-
-instance Enum a => Reducer a (BitSet a) where
-    unit m = BitSet.insert m BitSet.empty
--}
+instance (Stream s m t, c `Reducer` a) => Reducer c (ParsecT s u m a) where
+    unit = return . unit
+
+instance Reducer a (Seq a) where
+    unit = Seq.singleton
+    cons = (Seq.<|)
+    snoc = (Seq.|>)
+
+instance Reducer Int IntSet where
+    unit = IntSet.singleton
+    cons = IntSet.insert
+    snoc = flip IntSet.insert -- left bias irrelevant
+
+instance Ord a => Reducer a (Set a) where
+    unit = Set.singleton
+    cons = Set.insert
+    -- pedantic about order in case 'Eq' doesn't implement structural equality
+    snoc s m | Set.member m s = s 
+             | otherwise = Set.insert m s
+
+instance Reducer (Int,v) (IntMap v) where
+    unit = uncurry IntMap.singleton
+    cons = uncurry IntMap.insert
+    snoc = flip . uncurry . IntMap.insertWith $ const id
+
+instance Ord k => Reducer (k,v) (Map k v) where
+    unit = uncurry Map.singleton
+    cons = uncurry Map.insert
+    snoc = flip . uncurry . Map.insertWith $ const id
+
+{-
+instance Enum a => Reducer a (BitSet a) where
+    unit m = BitSet.insert m BitSet.empty
+-}
+
+data (m `ReducedBy` s) = Reduction { getReduction :: m } 
+
+instance Monoid m => Monoid (m `ReducedBy` s) where
+    mempty = Reduction mempty
+    Reduction a `mappend` Reduction b = Reduction (a `mappend` b)
+
+instance (s `Reflects` (a -> m), Monoid m) => Reducer a (m `ReducedBy` s) where
+    unit = Reduction . reflect (undefined :: s)
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 56
--- | @(a + b) * c = (a * c) + (b * c)@
-class (Multiplicative m, Monoid m) => RightSemiNearRing m 
+-- | @a * (b + c) = (a * b) + (a * c)@
+class (Multiplicative m, Monoid m) => LeftSemiNearRing m 
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 60
-instance RightSemiNearRing m => RightSemiNearRing (Self m)
-instance RightSemiNearRing m => RightSemiNearRing (FromString m)
-
--- | @a * (b + c) = (a * b) + (a * c)@
-class (Multiplicative m, Monoid m) => LeftSemiNearRing m 
-
--- 'Monoid' transformers
-instance LeftSemiNearRing m => LeftSemiNearRing (Self m)
-instance LeftSemiNearRing m => LeftSemiNearRing (FromString m)
-
--- non-'Monad' instances
-instance (Measured v m, Monoid m) => RightSemiNearRing (FingerTree v m)
-
--- 'Monad' instances
--- Every 'MonadPlus' over a 'Monoid' with an appropriate 'Multiplicative' instance
--- for 'liftM2 mappend' is a 'RightSemiNearRing' by 'MonadPlus' left-distributivity
+instance LeftSemiNearRing m => LeftSemiNearRing (Self m)
+instance LeftSemiNearRing m => LeftSemiNearRing (FromString m)
+instance LeftSemiNearRing m => LeftSemiNearRing (ReducedBy m s)
+instance RightSemiNearRing m => LeftSemiNearRing (Dual m)
+
+-- | @(a + b) * c = (a * c) + (b * c)@
+class (Multiplicative m, Monoid m) => RightSemiNearRing m 
+
+-- 'Monoid' transformers
+instance RightSemiNearRing m => RightSemiNearRing (Self m)
+instance RightSemiNearRing m => RightSemiNearRing (FromString m)
+instance RightSemiNearRing m => RightSemiNearRing (ReducedBy m s)
+instance LeftSemiNearRing m => RightSemiNearRing (Dual m)
+
+-- non-'Monad' instances
+instance (Measured v m, Monoid m) => RightSemiNearRing (FingerTree v m)
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 77
-instance Monoid m => RightSemiNearRing [m]
-
-instance Monoid m => RightSemiNearRing (Maybe m)
+-- 'Monad' instances
+-- Every 'MonadPlus' over a 'Monoid' with an appropriate 'Multiplicative' instance
+-- for 'liftM2 mappend' is a 'RightSemiNearRing' by 'MonadPlus' left-distributivity
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 81
-instance Monoid m => RightSemiNearRing (Seq m)
+instance Monoid m => RightSemiNearRing [m]
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 83
-instance (Stream s m t, Monoid a) => RightSemiNearRing (ParsecT s u m a)
+instance Monoid m => RightSemiNearRing (Maybe m)
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 85
-instance (MonadPlus m, Monoid n) => RightSemiNearRing (SState.StateT s m n)
+instance Monoid m => RightSemiNearRing (Seq m)
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 87
-instance (MonadPlus m, Monoid n) => RightSemiNearRing (LState.StateT s m n)
+instance (Stream s m t, Monoid a) => RightSemiNearRing (ParsecT s u m a)
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 89
-instance (MonadPlus m, Monoid n) => RightSemiNearRing (ReaderT e m n)
+instance (MonadPlus m, Monoid n) => RightSemiNearRing (SState.StateT s m n)
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 91
-instance (MonadPlus m, Monoid w, Monoid n) => RightSemiNearRing (SRWS.RWST r w s m n)
+instance (MonadPlus m, Monoid n) => RightSemiNearRing (LState.StateT s m n)
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 93
-instance (MonadPlus m, Monoid w, Monoid n) => RightSemiNearRing (LRWS.RWST r w s m n)
+instance (MonadPlus m, Monoid n) => RightSemiNearRing (ReaderT e m n)
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 95
-instance (MonadPlus m, Monoid w, Monoid n) => RightSemiNearRing (SWriter.WriterT w m n)
+instance (MonadPlus m, Monoid w, Monoid n) => RightSemiNearRing (SRWS.RWST r w s m n)
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 97
-instance (MonadPlus m, Monoid w, Monoid n) => RightSemiNearRing (LWriter.WriterT w m n)
+instance (MonadPlus m, Monoid w, Monoid n) => RightSemiNearRing (LRWS.RWST r w s m n)
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 99
+instance (MonadPlus m, Monoid w, Monoid n) => RightSemiNearRing (SWriter.WriterT w m n)
+
+instance (MonadPlus m, Monoid w, Monoid n) => RightSemiNearRing (LWriter.WriterT w m n)
+
hunk ./doc/html/monoids/src/Data-Ring-Semi.html 9
-
-----------------------------------------------------------------------------
--- |
--- Module      :  Data.Ring.Semi
--- Copyright   :  (c) Edward Kmett 2009
--- License     :  BSD-style
--- Maintainer  :  ekmett@gmail.com
--- Stability   :  experimental
--- Portability :  non-portable (MPTCs)
---
+
{-# LANGUAGE MultiParamTypeClasses #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Ring.Semi
+-- Copyright   :  (c) Edward Kmett 2009
+-- License     :  BSD-style
+-- Maintainer  :  ekmett@gmail.com
+-- Stability   :  experimental
+-- Portability :  non-portable (MPTCs)
hunk ./doc/html/monoids/src/Data-Ring-Semi.html 19
------------------------------------------------------------------------------
-
-module Data.Ring.Semi
-    ( module Data.Ring.Semi.Near
-    , SemiRing
-    ) where
-
-import Data.Ring.Semi.Near
-
--- | A 'SemiRing' is an instance of both 'Multiplicative' and 'Monoid' where 
---   'times' distributes over 'plus'.
-class (RightSemiNearRing a, LeftSemiNearRing a) => SemiRing a
+--
+-----------------------------------------------------------------------------
+
+module Data.Ring.Semi
+    ( module Data.Ring.Semi.Near
+    , SemiRing
+    ) where
+
+import Data.Ring.Semi.Near
+import Data.Monoid.Self
+import Data.Monoid.FromString
+
+-- | A 'SemiRing' is an instance of both 'Multiplicative' and 'Monoid' where 
+--   'times' distributes over 'plus'.
+class (RightSemiNearRing a, LeftSemiNearRing a) => SemiRing a
+
+instance SemiRing r => SemiRing (Self r)
+instance SemiRing r => SemiRing (FromString r)
+instance SemiRing r => SemiRing (ReducedBy r s)
+instance SemiRing r => SemiRing (Dual r)
hunk ./doc/html/monoids/src/Data-Ring.html 28
-
-class (Group a, SemiRing a) => Ring a
+import Data.Monoid.Self
+import Data.Monoid.FromString
+
+class (Group a, SemiRing a) => Ring a
+
+instance Ring r => Ring (Self r)
+instance Ring r => Ring (FromString r)
+instance Ring r => Ring (ReducedBy r s)
+instance Ring r => Ring (Dual r)
}
Constructors
Reduction
getReduction :: m
show/hide Instances
RightSemiNearRing m => RightSemiNearRingSemiRing r => SemiRing m)
MultiplicativeGroup g => MultiplicativeGroup (Self g)
Ring r => Ring (Self r)
Field f => Field (Self f)
LeftSemiNearRing m => LeftSemiNearRing (ReducedBy m s)
LeftSemiNearRing m => RightSemiNearRing (Dual m)
RightSemiNearRing m => RightSemiNearRing (ReducedBy m s)
SemiRing r => SemiRing (Self r)
SemiRing r => SemiRing (FromString r)
SemiRing r => SemiRing (ReducedBy r s)
Ring r => Ring (Self r)
Ring r => Ring (FromString r)
Ring r => Ring (ReducedBy r s)
getReduction
Reduction
Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group.Multiplicative, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Group.Multiplicative.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace