class Ringoid m => ( Multiplicative m, Monoid m) => Ringoid m => monoids-0.1.32: Monoids, specialized containers and a general map/reduce framework monoids-0.1.33: Monoids, specialized containers and a general map/reduce framework a) => Ringoid (Order a)(Bounded a, Ord a => Ringoid (Priority a) Ord monoids-0.1.32: Monoids, specialized containers and a general map/reduce framework monoids-0.1.33: Monoids, specialized containers and a general map/reduce framework a) => Ringoid (Tropical a)(Ord a, Num monoids-0.1.32: Monoids, specialized containers and a general map/reduce framework monoids-0.1.33: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.32: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.33: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.32: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.33: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.32: Monoids, specialized containers and a general map/reduce framework (Index)monoids-0.1.33: Monoids, specialized containers and a general map/reduce framework (Index)monoids-0.1.32: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.33: Monoids, specialized containers and a general map/reduce frameworkAlgebra Data.Ring.Algebra Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceKleeneAlgebraData.Ring.Semi.Kleene Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, 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.Semi.Near.Trie, 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.Semi.BitSet, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceRAlgebraData.Ring.Algebra , Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace , Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpaceRingoid Data.Ring.Semi.Near , Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpacestarData.Ring.Semi.Kleene Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, 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.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Generator.Compressive.LZ78, Data.Monoid.FromString, Data.Generator.Compressive.RLE, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Generator.Combinators, Data.Generator.Free, Data.Ring.Semi.Natural, Data.Ring.Algebra, Data.Ring.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpace, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, Data.Ring.Sugar, Data.Group.Multiplicative, 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.Semi.BitSet, 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.Semi.Near.Trie, 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.Semi.BitSet, 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.Kleene, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Semi.Near.Trie, 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.Semi.BitSet, Data.Ring.Module.AutomaticDifferentiation, Data.Field, Data.Field.VectorSpacemonoids-0.1.32: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.33: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.32: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.33: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.32: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.33: Monoids, specialized containers and a general map/reduce frameworkData.Ring.Semi.Kleene instance ( Alternative f , Monoid a ) => RightSemiNearRing ( Alt f a )
+instance ( Alternative f , Monoid a ) => Ringoid ( Alt f a )
hunk ./doc/html/monoids/src/Data-Monoid-Applicative.html 86
-
+instance ( Alternative f , Monoid a ) => RightSemiNearRing ( Alt f a )
hunk ./doc/html/monoids/src/Data-Monoid-Applicative.html 88
-newtype App f m = App { getApp :: f m }
- deriving ( Eq , Ord , Show , Read , Functor , Pointed , Applicative , Alternative , Copointed )
-
-instance ( Monoid m , Applicative f ) => Monoid ( f `App` m ) where
- mempty = pure mempty
- mappend = liftA2 mappend
-
-instance ( Group m , Applicative f ) => Group ( f `App` m ) where
- gnegate = fmap gnegate
- minus = liftA2 minus
- gsubtract = liftA2 gsubtract
-
-instance ( c `Reducer` m , Applicative f ) => Reducer c ( f `App` m ) where
- unit = pure . unit
-
-instance ( LeftModule r m , Applicative f ) => LeftModule r ( f `App` m ) where x *. m = ( x *. ) <$> m
-instance ( RightModule r m , Applicative f ) => RightModule r ( f `App` m ) where m .* y = ( .* y ) <$> m
-instance ( Module r m , Applicative f ) => Module r ( f `App` m )
+
+
+newtype App f m = App { getApp :: f m }
+ deriving ( Eq , Ord , Show , Read , Functor , Pointed , Applicative , Alternative , Copointed )
+
+instance ( Monoid m , Applicative f ) => Monoid ( f `App` m ) where
+ mempty = pure mempty
+ mappend = liftA2 mappend
+
+instance ( Group m , Applicative f ) => Group ( f `App` m ) where
+ gnegate = fmap gnegate
+ minus = liftA2 minus
+ gsubtract = liftA2 gsubtract
+
+instance ( c `Reducer` m , Applicative f ) => Reducer c ( f `App` m ) where
+ unit = pure . unit
+
+instance ( LeftModule r m , Applicative f ) => LeftModule r ( f `App` m ) where x *. m = ( x *. ) <$> m
+instance ( RightModule r m , Applicative f ) => RightModule r ( f `App` m ) where m .* y = ( .* y ) <$> m
+instance ( Module r m , Applicative f ) => Module r ( f `App` m )
hunk ./doc/html/monoids/src/Data-Monoid-Monad.html 94
-instance ( MonadPlus m , Monoid a ) => RightSemiNearRing ( MonadSum m a )
+instance ( MonadPlus m , Monoid a ) => Ringoid ( MonadSum m a )
hunk ./doc/html/monoids/src/Data-Monoid-Monad.html 96
-
+instance ( MonadPlus m , Monoid a ) => RightSemiNearRing ( MonadSum m a )
hunk ./doc/html/monoids/src/Data-Monoid-Monad.html 98
-newtype Mon f m = Mon { getMon :: f m }
- deriving ( Eq , Ord , Show , Read , Functor , Pointed , Monad , MonadPlus )
-
-instance ( Monoid m , Monad f ) => Monoid ( f `Mon` m ) where
- mempty = return mempty
- mappend = liftM2 mappend
-
-instance ( Group m , Monad f ) => Group ( f `Mon` m ) where
- gnegate = liftM gnegate
- minus = liftM2 minus
- gsubtract = liftM2 gsubtract
-
-instance ( c `Reducer` m , Monad f ) => Reducer c ( f `Mon` m ) where
- unit = return . unit
-
-instance ( LeftModule r m , Monad f ) => LeftModule r ( f `Mon` m ) where
- x *. m = liftM ( x *. ) m
-
-instance ( RightModule r m , Monad f ) => RightModule r ( f `Mon` m ) where
- m .* y = liftM ( .* y ) m
-
-instance ( Module r m , Monad f ) => Module r ( f `Mon` m )
+
+
+newtype Mon f m = Mon { getMon :: f m }
+ deriving ( Eq , Ord , Show , Read , Functor , Pointed , Monad , MonadPlus )
+
+instance ( Monoid m , Monad f ) => Monoid ( f `Mon` m ) where
+ mempty = return mempty
+ mappend = liftM2 mappend
+
+instance ( Group m , Monad f ) => Group ( f `Mon` m ) where
+ gnegate = liftM gnegate
+ minus = liftM2 minus
+ gsubtract = liftM2 gsubtract
+
+instance ( c `Reducer` m , Monad f ) => Reducer c ( f `Mon` m ) where
+ unit = return . unit
+
+instance ( LeftModule r m , Monad f ) => LeftModule r ( f `Mon` m ) where
+ x *. m = liftM ( x *. ) m
+
+instance ( RightModule r m , Monad f ) => RightModule r ( f `Mon` m ) where
+ m .* y = liftM ( .* y ) m
+
+instance ( Module r m , Monad f ) => Module r ( f `Mon` m )
hunk ./doc/html/monoids/src/Data-Ring-Algebra.html 12
- , Algebra
+ , RAlgebra
hunk ./doc/html/monoids/src/Data-Ring-Algebra.html 17
-
-
-
-
-class ( r `Module` m , Multiplicative m ) => Algebra r m
+
+
+
+
+
+class ( r `Module` m , Multiplicative m ) => RAlgebra r m
hunk ./doc/html/monoids/src/Data-Ring-Boolean.html 48
-instance LeftSemiNearRing BoolRing
-instance RightSemiNearRing BoolRing
-instance SemiRing BoolRing
-instance Ring BoolRing
-
-instance Reducer Bool BoolRing where
- unit = BoolRing
+instance Ringoid BoolRing
+instance LeftSemiNearRing BoolRing
+instance RightSemiNearRing BoolRing
+instance SemiRing BoolRing
+instance Ring BoolRing
+
+instance Reducer Bool BoolRing where
+ unit = BoolRing
hunk ./doc/html/monoids/src/Data-Ring-FromNum.html 49
-instance Num a => LeftSemiNearRing ( FromNum a )
-instance Num a => RightSemiNearRing ( FromNum a )
-instance Num a => SemiRing ( FromNum a )
-instance Num a => Ring ( FromNum a )
-
-instance Num a => Reducer Integer ( FromNum a ) where
- unit = fromInteger
-
+instance Num a => Ringoid ( FromNum a )
+instance Num a => LeftSemiNearRing ( FromNum a )
+instance Num a => RightSemiNearRing ( FromNum a )
+instance Num a => SemiRing ( FromNum a )
+instance Num a => Ring ( FromNum a )
+
+instance Num a => Reducer Integer ( FromNum a ) where
+ unit = fromInteger
+
hunk ./doc/html/monoids/src/Data-Ring-ModularArithmetic.html 76
-instance ( Modular s a , Integral a ) => LeftSemiNearRing ( a `Mod` s )
-instance ( Modular s a , Integral a ) => RightSemiNearRing ( a `Mod` s )
-instance ( Modular s a , Integral a ) => SemiRing ( a `Mod` s )
-instance ( Modular s a , Integral a ) => Ring ( a `Mod` s )
+instance ( Modular s a , Integral a ) => Ringoid ( a `Mod` s )
+instance ( Modular s a , Integral a ) => LeftSemiNearRing ( a `Mod` s )
+instance ( Modular s a , Integral a ) => RightSemiNearRing ( a `Mod` s )
+instance ( Modular s a , Integral a ) => SemiRing ( a `Mod` s )
+instance ( Modular s a , Integral a ) => Ring ( a `Mod` s )
hunk ./doc/html/monoids/src/Data-Ring-Module-AutomaticDifferentiation.html 37
-lift :: Monoid m => r -> D s r m
+lift :: ( r `Module` m ) => r -> D s r m
hunk ./doc/html/monoids/src/Data-Ring-Module-AutomaticDifferentiation.html 40
-infinitesimal :: ( Monoid r , Multiplicative m ) => D s r m
+infinitesimal :: ( r `Module` m , Ringoid m ) => D s r m
hunk ./doc/html/monoids/src/Data-Ring-Module-AutomaticDifferentiation.html 75
-instance ( LeftSemiNearRing r , Module r m ) => LeftSemiNearRing ( D s r m )
-instance ( RightSemiNearRing r , Module r m ) => RightSemiNearRing ( D s r m )
-instance ( SemiRing r , Module r m ) => SemiRing ( D s r m )
-instance ( Ring r , Module r m , Group m ) => Ring ( D s r m )
-
-instance ( c `Reducer` r , c `Reducer` m ) => Reducer c ( D s r m ) where
- unit c = D ( unit c ) ( unit c )
- c `cons` D x m = D ( c `cons` x ) ( c `cons` m )
- D x m `snoc` c = D ( x `snoc` c ) ( m `snoc` c )
-
-instance ( Arbitrary r , Arbitrary m ) => Arbitrary ( D s r m ) where
- arbitrary = liftM2 D arbitrary arbitrary
- shrink ( D r m ) = liftM2 D ( shrink r ) ( shrink m )
-
-instance ( CoArbitrary r , CoArbitrary m ) => CoArbitrary ( D s r m ) where
- coarbitrary ( D r m ) = coarbitrary r >< coarbitrary m
-
-d :: ( Monoid r , Multiplicative m ) => ( forall s . D s r m -> D s r m ) -> ( r , m )
-d f = ( y , y' ) where D y y' = f infinitesimal
-
+instance ( Ringoid r , r `Module` m ) => Ringoid ( D s r m )
+instance ( LeftSemiNearRing r , Module r m ) => LeftSemiNearRing ( D s r m )
+instance ( RightSemiNearRing r , Module r m ) => RightSemiNearRing ( D s r m )
+instance ( SemiRing r , r `Module` m ) => SemiRing ( D s r m )
+instance ( Ring r , r `Module` m , Group m ) => Ring ( D s r m )
+
+instance ( c `Reducer` r , c `Reducer` m ) => Reducer c ( D s r m ) where
+ unit c = D ( unit c ) ( unit c )
+ c `cons` D x m = D ( c `cons` x ) ( c `cons` m )
+ D x m `snoc` c = D ( x `snoc` c ) ( m `snoc` c )
+
+instance ( Arbitrary r , Arbitrary m ) => Arbitrary ( D s r m ) where
+ arbitrary = liftM2 D arbitrary arbitrary
+ shrink ( D r m ) = liftM2 D ( shrink r ) ( shrink m )
+
+instance ( CoArbitrary r , CoArbitrary m ) => CoArbitrary ( D s r m ) where
+ coarbitrary ( D r m ) = coarbitrary r >< coarbitrary m
+
+d :: ( r `Module` m , Ringoid m ) => ( forall s . D s r m -> D s r m ) -> ( r , m )
+d f = ( y , y' ) where D y y' = f infinitesimal
+
hunk ./doc/html/monoids/src/Data-Ring-Semi-BitSet.html 359
-instance ( Enum a , Show a ) => Show ( BitSet a ) where
+instance Show a => Show ( BitSet a ) where
hunk ./doc/html/monoids/src/Data-Ring-Semi-BitSet.html 409
-instance ( Bounded a , Enum a ) => LeftSemiNearRing ( BitSet a )
-instance ( Bounded a , Enum a ) => RightSemiNearRing ( BitSet a )
-instance ( Bounded a , Enum a ) => SemiRing ( BitSet a )
-
-
-instance Enum a => LeftModule Natural ( BitSet a ) where
- 0 *. _ = empty
- _ *. m = m
-instance Enum a => RightModule Natural ( BitSet a ) where
- _ .* 0 = empty
- m .* _ = m
-instance Enum a => Module Natural ( BitSet a )
-
-instance ( Bounded a , Enum a ) => LeftModule ( BitSet a ) ( BitSet a ) where ( *. ) = times
-instance ( Bounded a , Enum a ) => RightModule ( BitSet a ) ( BitSet a ) where ( .* ) = times
-instance ( Bounded a , Enum a ) => Module ( BitSet a ) ( BitSet a )
-
-instance ( Bounded a , Enum a ) => Algebra Natural ( BitSet a )
-
-instance Enum a => Generator ( BitSet a ) where
- type Elem ( BitSet a ) = a
- mapReduce f = mapReduce f . toList
+instance ( Bounded a , Enum a ) => Ringoid ( BitSet a )
+instance ( Bounded a , Enum a ) => LeftSemiNearRing ( BitSet a )
+instance ( Bounded a , Enum a ) => RightSemiNearRing ( BitSet a )
+instance ( Bounded a , Enum a ) => SemiRing ( BitSet a )
+
+
+instance Enum a => LeftModule Natural ( BitSet a ) where
+ 0 *. _ = empty
+ _ *. m = m
+instance Enum a => RightModule Natural ( BitSet a ) where
+ _ .* 0 = empty
+ m .* _ = m
+instance Enum a => Module Natural ( BitSet a )
+
+instance ( Bounded a , Enum a ) => LeftModule ( BitSet a ) ( BitSet a ) where ( *. ) = times
+instance ( Bounded a , Enum a ) => RightModule ( BitSet a ) ( BitSet a ) where ( .* ) = times
+instance ( Bounded a , Enum a ) => Module ( BitSet a ) ( BitSet a )
+
+instance ( Bounded a , Enum a ) => RAlgebra Natural ( BitSet a )
+
+instance Generator ( BitSet a ) where
+ type Elem ( BitSet a ) = a
+ mapReduce f = mapReduce f . toList
hunk ./doc/html/monoids/src/Data-Ring-Semi-Kleene.html 1
+
+
+
+
+Data/Ring/Semi/Kleene.hs
+
+
+
+module Data . Ring . Semi . Kleene
+ ( module Data . Ring . Semi
+ , KleeneAlgebra
+ , star
+ ) where
+
+import Data . Ring . Semi
+
+class SemiRing r => KleeneAlgebra r where
+ star :: r -> r
+
+
hunk ./doc/html/monoids/src/Data-Ring-Semi-Natural.html 107
-instance LeftSemiNearRing Natural
-instance RightSemiNearRing Natural
-instance SemiRing Natural
-
-instance LeftModule Natural () where _ *. _ = ()
-instance RightModule Natural () where _ .* _ = ()
-instance Module Natural ()
-
-
-instance LeftModule Natural Any where
- 0 *. _ = mempty
- _ *. m = m
-instance RightModule Natural Any where
- _ .* 0 = mempty
- m .* _ = m
-instance Module Natural Any
-
-instance LeftModule Natural All where
- 0 *. _ = mempty
- _ *. m = m
-instance RightModule Natural All where
- _ .* 0 = mempty
- m .* _ = m
-instance Module Natural All
-
-instance LeftModule Natural ( First a ) where
- 0 *. _ = mempty
- _ *. m = m
-instance RightModule Natural ( First a ) where
- _ .* 0 = mempty
- m .* _ = m
-instance Module Natural ( First a )
-
-instance LeftModule Natural ( Last a ) where
- 0 *. _ = mempty
- _ *. m = m
-instance RightModule Natural ( Last a ) where
- _ .* 0 = mempty
- m .* _ = m
-instance Module Natural ( Last a )
-
-instance LeftModule Natural Ordering where
- 0 *. _ = mempty
- _ *. m = m
-instance RightModule Natural Ordering where
- _ .* 0 = mempty
- m .* _ = m
-instance Module Natural Ordering
-
-
-
-instance LeftModule Natural [ a ] where ( *. ) = flip Monoid . replicate
-instance RightModule Natural [ a ] where ( .* ) = Monoid . replicate
-instance Module Natural [ a ]
-
-instance Monoid m => LeftModule Natural ( a -> m ) where ( *. ) = flip Monoid . replicate
-instance Monoid m => RightModule Natural ( a -> m ) where ( .* ) = Monoid . replicate
-instance Monoid m => Module Natural ( a -> m )
-
-instance Num a => LeftModule Natural ( Sum a ) where ( *. ) = flip Monoid . replicate
-instance Num a => RightModule Natural ( Sum a ) where ( .* ) = Monoid . replicate
-instance Num a => Module Natural ( Sum a )
-
-instance Num a => LeftModule Natural ( Product a ) where ( *. ) = flip ( .* )
-instance Num a => RightModule Natural ( Product a ) where Product m .* Natural n = Product ( m ^ n )
-instance Num a => Module Natural ( Product a )
-
-instance LeftModule Natural ( Endo a ) where ( *. ) = flip Monoid . replicate
-instance RightModule Natural ( Endo a ) where ( .* ) = Monoid . replicate
-instance Module Natural ( Endo a )
-
-instance Monoid m => LeftModule Natural ( Dual m ) where ( *. ) = flip Monoid . replicate
-instance Monoid m => RightModule Natural ( Dual m ) where ( .* ) = Monoid . replicate
-instance Monoid m => Module Natural ( Dual m )
-
-
-instance Monoid m => LeftModule Natural ( FromString m ) where ( *. ) = flip Monoid . replicate
-instance Monoid m => RightModule Natural ( FromString m ) where ( .* ) = Monoid . replicate
-instance Monoid m => Module Natural ( FromString m )
-
-
-instance Monoid m => LeftModule Natural ( Self m ) where ( *. ) = flip Monoid . replicate
-instance Monoid m => RightModule Natural ( Self m ) where ( .* ) = Monoid . replicate
-instance Monoid m => Module Natural ( Self m )
-
-
-instance LeftModule Natural ( Free a ) where ( *. ) = flip Monoid . replicate
-instance RightModule Natural ( Free a ) where ( .* ) = Monoid . replicate
-instance Module Natural ( Free a )
-
-
-instance Eq a => LeftModule Natural ( RLE Seq a ) where ( *. ) = flip Monoid . replicate
-instance Eq a => RightModule Natural ( RLE Seq a ) where ( .* ) = Monoid . replicate
-instance Eq a => Module Natural ( RLE Seq a )
-
-
-instance Category k => LeftModule Natural ( GEndo k a ) where ( *. ) = flip Monoid . replicate
-instance Category k => RightModule Natural ( GEndo k a ) where ( .* ) = Monoid . replicate
-instance Category k => Module Natural ( GEndo k a )
-
-instance Monoid m => LeftModule Natural ( CMonoid m m m ) where ( *. ) = flip Monoid . replicate
-instance Monoid m => RightModule Natural ( CMonoid m m m ) where ( .* ) = Monoid . replicate
-instance Monoid m => Module Natural ( CMonoid m m m )
-
-
-instance Applicative f => LeftModule Natural ( Traversal f ) where ( *. ) = flip Monoid . replicate
-instance Applicative f => RightModule Natural ( Traversal f ) where ( .* ) = Monoid . replicate
-instance Applicative f => Module Natural ( Traversal f )
-
-instance Alternative f => LeftModule Natural ( Alt f a ) where ( *. ) = flip Monoid . replicate
-instance Alternative f => RightModule Natural ( Alt f a ) where ( .* ) = Monoid . replicate
-instance Alternative f => Module Natural ( Alt f a )
-
-
-
-
-
-
-instance Monad f => LeftModule Natural ( Action f ) where ( *. ) = flip Monoid . replicate
-instance Monad f => RightModule Natural ( Action f ) where ( .* ) = Monoid . replicate
-instance Monad f => Module Natural ( Action f )
-
-instance MonadPlus f => LeftModule Natural ( MonadSum f a ) where ( *. ) = flip Monoid . replicate
-instance MonadPlus f => RightModule Natural ( MonadSum f a ) where ( .* ) = Monoid . replicate
-instance MonadPlus f => Module Natural ( MonadSum f a )
-
-
-
-
-
-
-instance LeftModule Natural ( SourcePosition f ) where
- 0 *. _ = mempty
- n *. Columns x = Columns ( fromIntegral n * x )
- n *. Lines l c = Lines ( fromIntegral n * l ) c
- _ *. Pos f l c = Pos f l c
- n *. t = Monoid . replicate t n
-
-instance RightModule Natural ( SourcePosition f ) where ( .* ) = flip ( *. )
-instance Module Natural ( SourcePosition f )
-
-instance CharReducer m => LeftModule Natural ( UTF8 m ) where ( *. ) = flip Monoid . replicate
-instance CharReducer m => RightModule Natural ( UTF8 m ) where ( .* ) = Monoid . replicate
-instance CharReducer m => Module Natural ( UTF8 m )
-
-instance Multiplicative m => LeftModule Natural ( Log m ) where ( *. ) = flip Monoid . replicate
-instance Multiplicative m => RightModule Natural ( Log m ) where ( .* ) = Monoid . replicate
-instance Multiplicative m => Module Natural ( Log m )
-
+instance Ringoid Natural
+instance LeftSemiNearRing Natural
+instance RightSemiNearRing Natural
+instance SemiRing Natural
+
+instance LeftModule Natural () where _ *. _ = ()
+instance RightModule Natural () where _ .* _ = ()
+instance Module Natural ()
+
+
+instance LeftModule Natural Any where
+ 0 *. _ = mempty
+ _ *. m = m
+instance RightModule Natural Any where
+ _ .* 0 = mempty
+ m .* _ = m
+instance Module Natural Any
+
+instance LeftModule Natural All where
+ 0 *. _ = mempty
+ _ *. m = m
+instance RightModule Natural All where
+ _ .* 0 = mempty
+ m .* _ = m
+instance Module Natural All
+
+instance LeftModule Natural ( First a ) where
+ 0 *. _ = mempty
+ _ *. m = m
+instance RightModule Natural ( First a ) where
+ _ .* 0 = mempty
+ m .* _ = m
+instance Module Natural ( First a )
+
+instance LeftModule Natural ( Last a ) where
+ 0 *. _ = mempty
+ _ *. m = m
+instance RightModule Natural ( Last a ) where
+ _ .* 0 = mempty
+ m .* _ = m
+instance Module Natural ( Last a )
+
+instance LeftModule Natural Ordering where
+ 0 *. _ = mempty
+ _ *. m = m
+instance RightModule Natural Ordering where
+ _ .* 0 = mempty
+ m .* _ = m
+instance Module Natural Ordering
+
+
+
+instance LeftModule Natural [ a ] where ( *. ) = flip Monoid . replicate
+instance RightModule Natural [ a ] where ( .* ) = Monoid . replicate
+instance Module Natural [ a ]
+
+instance Monoid m => LeftModule Natural ( a -> m ) where ( *. ) = flip Monoid . replicate
+instance Monoid m => RightModule Natural ( a -> m ) where ( .* ) = Monoid . replicate
+instance Monoid m => Module Natural ( a -> m )
+
+instance Num a => LeftModule Natural ( Sum a ) where ( *. ) = flip Monoid . replicate
+instance Num a => RightModule Natural ( Sum a ) where ( .* ) = Monoid . replicate
+instance Num a => Module Natural ( Sum a )
+
+instance Num a => LeftModule Natural ( Product a ) where ( *. ) = flip ( .* )
+instance Num a => RightModule Natural ( Product a ) where Product m .* Natural n = Product ( m ^ n )
+instance Num a => Module Natural ( Product a )
+
+instance LeftModule Natural ( Endo a ) where ( *. ) = flip Monoid . replicate
+instance RightModule Natural ( Endo a ) where ( .* ) = Monoid . replicate
+instance Module Natural ( Endo a )
+
+instance Monoid m => LeftModule Natural ( Dual m ) where ( *. ) = flip Monoid . replicate
+instance Monoid m => RightModule Natural ( Dual m ) where ( .* ) = Monoid . replicate
+instance Monoid m => Module Natural ( Dual m )
+
+
+instance Monoid m => LeftModule Natural ( FromString m ) where ( *. ) = flip Monoid . replicate
+instance Monoid m => RightModule Natural ( FromString m ) where ( .* ) = Monoid . replicate
+instance Monoid m => Module Natural ( FromString m )
+
+
+instance Monoid m => LeftModule Natural ( Self m ) where ( *. ) = flip Monoid . replicate
+instance Monoid m => RightModule Natural ( Self m ) where ( .* ) = Monoid . replicate
+instance Monoid m => Module Natural ( Self m )
+
+
+instance LeftModule Natural ( Free a ) where ( *. ) = flip Monoid . replicate
+instance RightModule Natural ( Free a ) where ( .* ) = Monoid . replicate
+instance Module Natural ( Free a )
+
+
+instance Eq a => LeftModule Natural ( RLE Seq a ) where ( *. ) = flip Monoid . replicate
+instance Eq a => RightModule Natural ( RLE Seq a ) where ( .* ) = Monoid . replicate
+instance Eq a => Module Natural ( RLE Seq a )
+
+
+instance Category k => LeftModule Natural ( GEndo k a ) where ( *. ) = flip Monoid . replicate
+instance Category k => RightModule Natural ( GEndo k a ) where ( .* ) = Monoid . replicate
+instance Category k => Module Natural ( GEndo k a )
+
+instance Monoid m => LeftModule Natural ( CMonoid m m m ) where ( *. ) = flip Monoid . replicate
+instance Monoid m => RightModule Natural ( CMonoid m m m ) where ( .* ) = Monoid . replicate
+instance Monoid m => Module Natural ( CMonoid m m m )
+
+
+instance Applicative f => LeftModule Natural ( Traversal f ) where ( *. ) = flip Monoid . replicate
+instance Applicative f => RightModule Natural ( Traversal f ) where ( .* ) = Monoid . replicate
+instance Applicative f => Module Natural ( Traversal f )
+
+instance Alternative f => LeftModule Natural ( Alt f a ) where ( *. ) = flip Monoid . replicate
+instance Alternative f => RightModule Natural ( Alt f a ) where ( .* ) = Monoid . replicate
+instance Alternative f => Module Natural ( Alt f a )
+
+
+
+
+
+
+instance Monad f => LeftModule Natural ( Action f ) where ( *. ) = flip Monoid . replicate
+instance Monad f => RightModule Natural ( Action f ) where ( .* ) = Monoid . replicate
+instance Monad f => Module Natural ( Action f )
+
+instance MonadPlus f => LeftModule Natural ( MonadSum f a ) where ( *. ) = flip Monoid . replicate
+instance MonadPlus f => RightModule Natural ( MonadSum f a ) where ( .* ) = Monoid . replicate
+instance MonadPlus f => Module Natural ( MonadSum f a )
+
+
+
+
+
+
+instance LeftModule Natural ( SourcePosition f ) where
+ 0 *. _ = mempty
+ n *. Columns x = Columns ( fromIntegral n * x )
+ n *. Lines l c = Lines ( fromIntegral n * l ) c
+ _ *. Pos f l c = Pos f l c
+ n *. t = Monoid . replicate t n
+
+instance RightModule Natural ( SourcePosition f ) where ( .* ) = flip ( *. )
+instance Module Natural ( SourcePosition f )
+
+instance CharReducer m => LeftModule Natural ( UTF8 m ) where ( *. ) = flip Monoid . replicate
+instance CharReducer m => RightModule Natural ( UTF8 m ) where ( .* ) = Monoid . replicate
+instance CharReducer m => Module Natural ( UTF8 m )
+
+instance Multiplicative m => LeftModule Natural ( Log m ) where ( *. ) = flip Monoid . replicate
+instance Multiplicative m => RightModule Natural ( Log m ) where ( .* ) = Monoid . replicate
+instance Multiplicative m => Module Natural ( Log m )
hunk ./doc/html/monoids/src/Data-Ring-Semi-Natural.html 257
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 30
- , LeftSemiNearRing
- , RightSemiNearRing
- ) where
-
-import Control . Monad . Reader
-
-import qualified Control . Monad . RWS . Lazy as LRWS
-import qualified Control . Monad . RWS . Strict as SRWS
-
-import qualified Control . Monad . State . Lazy as LState
-import qualified Control . Monad . State . Strict as SState
-
-import qualified Control . Monad . Writer . Lazy as LWriter
-import qualified Control . Monad . Writer . Strict as SWriter
-
-import Data . Monoid . Multiplicative
-import Data . FingerTree
-import Data . Monoid . FromString
-import Data . Monoid . Self
-import Data . Generator
-
-import qualified Data . Sequence as Seq
-import Data . Sequence ( Seq )
-
-import Text . Parsec . Prim
-
-
-class ( Multiplicative m , Monoid m ) => LeftSemiNearRing m
-
-
-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 )
-
-
-class ( Multiplicative m , Monoid m ) => RightSemiNearRing m
-
-
-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 )
-
-
-instance ( Measured v m , Monoid m ) => RightSemiNearRing ( FingerTree v m )
-
-
-
-
-
-instance Monoid m => RightSemiNearRing [ m ]
+ , Ringoid
+ , LeftSemiNearRing
+ , RightSemiNearRing
+ ) where
+
+import Control . Monad . Reader
+
+import qualified Control . Monad . RWS . Lazy as LRWS
+import qualified Control . Monad . RWS . Strict as SRWS
+
+import qualified Control . Monad . State . Lazy as LState
+import qualified Control . Monad . State . Strict as SState
+
+import qualified Control . Monad . Writer . Lazy as LWriter
+import qualified Control . Monad . Writer . Strict as SWriter
+
+import Data . Monoid . Multiplicative
+import Data . FingerTree
+import Data . Monoid . FromString
+import Data . Monoid . Self
+import Data . Generator
+
+import qualified Data . Sequence as Seq
+import Data . Sequence ( Seq )
+
+import Text . Parsec . Prim
+
+
+class ( Multiplicative m , Monoid m ) => Ringoid m
+instance Ringoid m => Ringoid ( Self m )
+instance Ringoid m => Ringoid ( FromString m )
+instance Ringoid m => Ringoid ( ReducedBy m s )
+instance Ringoid m => Ringoid ( Dual m )
+instance ( Measured v m , Monoid m ) => Ringoid ( FingerTree v m )
+instance Monoid m => Ringoid [ m ]
+instance Monoid m => Ringoid ( Maybe m )
+instance Monoid m => Ringoid ( Seq m )
+instance ( Stream s m t , Monoid a ) => Ringoid ( ParsecT s u m a )
+instance ( MonadPlus m , Monoid n ) => Ringoid ( SState . StateT s m n )
+instance ( MonadPlus m , Monoid n ) => Ringoid ( LState . StateT s m n )
+instance ( MonadPlus m , Monoid n ) => Ringoid ( ReaderT e m n )
+instance ( MonadPlus m , Monoid w , Monoid n ) => Ringoid ( SRWS . RWST r w s m n )
+instance ( MonadPlus m , Monoid w , Monoid n ) => Ringoid ( LRWS . RWST r w s m n )
+instance ( MonadPlus m , Monoid w , Monoid n ) => Ringoid ( SWriter . WriterT w m n )
+instance ( MonadPlus m , Monoid w , Monoid n ) => Ringoid ( LWriter . WriterT w m n )
+
+
+class Ringoid m => LeftSemiNearRing m
+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 )
hunk ./doc/html/monoids/src/Data-Ring-Semi-Near.html 83
-instance Monoid m => RightSemiNearRing ( Maybe m )
-
-instance Monoid m => RightSemiNearRing ( Seq m )
-
-instance ( Stream s m t , Monoid a ) => RightSemiNearRing ( ParsecT s u m a )
-
-instance ( MonadPlus m , Monoid n ) => RightSemiNearRing ( SState . StateT s m n )
-
-instance ( MonadPlus m , Monoid n ) => RightSemiNearRing ( LState . StateT s m n )
-
-instance ( MonadPlus m , Monoid n ) => RightSemiNearRing ( ReaderT e m n )
-
-instance ( MonadPlus m , Monoid w , Monoid n ) => RightSemiNearRing ( SRWS . RWST r w s m n )
-
-instance ( MonadPlus m , Monoid w , Monoid n ) => RightSemiNearRing ( LRWS . RWST r w s m n )
-
+
+class Ringoid m => RightSemiNearRing m
+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 )
+instance ( Measured v m , Monoid m ) => RightSemiNearRing ( FingerTree v m )
+instance Monoid m => RightSemiNearRing [ m ]
+instance Monoid m => RightSemiNearRing ( Maybe m )
+instance Monoid m => RightSemiNearRing ( Seq m )
+instance ( Stream s m t , Monoid a ) => RightSemiNearRing ( ParsecT s u m a )
+instance ( MonadPlus m , Monoid n ) => RightSemiNearRing ( SState . StateT s m n )
+instance ( MonadPlus m , Monoid n ) => RightSemiNearRing ( LState . StateT s m n )
+instance ( MonadPlus m , Monoid n ) => RightSemiNearRing ( ReaderT e m n )
+instance ( MonadPlus m , Monoid w , Monoid n ) => RightSemiNearRing ( SRWS . RWST r w s 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 100
-
-instance ( MonadPlus m , Monoid w , Monoid n ) => RightSemiNearRing ( LWriter . 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-Ord.html 46
-instance ( Bounded a , Ord a ) => RightSemiNearRing ( Order a )
-instance ( Bounded a , Ord a ) => LeftSemiNearRing ( Order a )
-instance ( Bounded a , Ord a ) => SemiRing ( Order a )
-instance ( Bounded a , Ord a ) => Reducer a ( Order a ) where
- unit = Order
-
-instance Functor Order where
- fmap f ( Order a ) = Order ( f a )
-
-instance Pointed Order where
- point = Order
-
-instance Copointed Order where
- extract = getOrder
-
-
-data Priority a = MinBound | Priority a | MaxBound deriving ( Eq , Read , Show )
-
-instance Bounded ( Priority a ) where
- minBound = MinBound
- maxBound = MaxBound
-
-instance Ord a => Ord ( Priority a ) where
- MinBound <= _ = True
- Priority _ <= MinBound = False
- Priority a <= Priority b = a <= b
- Priority _ <= MaxBound = True
- MaxBound <= MaxBound = True
- MaxBound <= _ = False
-
- MinBound `min` _ = MinBound
- _ `min` MinBound = MinBound
- Priority a `min` Priority b = Priority ( a `min` b )
- u `min` MaxBound = u
- MaxBound `min` v = v
-
- MinBound `max` v = v
- u `max` MinBound = u
- Priority a `max` Priority b = Priority ( a `max` b )
- _ `max` MaxBound = MaxBound
- MaxBound `max` _ = MaxBound
-
-instance Arbitrary a => Arbitrary ( Priority a ) where
- arbitrary = frequency [ ( 1 , return MinBound )
- , ( 10 , fmap Priority arbitrary )
- , ( 1 , return MaxBound ) ]
- shrink ( Priority x ) = MinBound : MaxBound : fmap Priority ( shrink x )
- shrink MinBound = []
- shrink MaxBound = []
-
-instance CoArbitrary a => CoArbitrary ( Priority a ) where
- coarbitrary MinBound = variant ( 0 :: Int )
- coarbitrary ( Priority a ) = variant ( 1 :: Int ) . coarbitrary a
- coarbitrary MaxBound = variant ( 2 :: Int )
-
-instance Ord a => Monoid ( Priority a ) where
- mappend = max
- mempty = minBound
-
-instance Ord a => Multiplicative ( Priority a ) where
- times = min
- one = maxBound
-
-instance Ord a => LeftSemiNearRing ( Priority a )
-instance Ord a => RightSemiNearRing ( Priority a )
-instance Ord a => SemiRing ( Priority a )
-
-instance Ord a => Reducer a ( Priority a ) where
- unit = Priority
-
-instance Ord a => Reducer ( MinPriority a ) ( Priority a ) where
- unit ( MinPriority Nothing ) = MaxBound
- unit ( MinPriority ( Just x ) ) = Priority x
-
-instance Ord a => Reducer ( MaxPriority a ) ( Priority a ) where
- unit ( MaxPriority Nothing ) = MinBound
- unit ( MaxPriority ( Just x ) ) = Priority x
-
-instance Functor Priority where
- fmap _ MaxBound = MaxBound
- fmap f ( Priority a ) = Priority ( f a )
- fmap _ MinBound = MinBound
-
-instance Pointed Priority where
- point = Priority
+instance ( Bounded a , Ord a ) => Ringoid ( Order a )
+instance ( Bounded a , Ord a ) => RightSemiNearRing ( Order a )
+instance ( Bounded a , Ord a ) => LeftSemiNearRing ( Order a )
+instance ( Bounded a , Ord a ) => SemiRing ( Order a )
+instance ( Bounded a , Ord a ) => Reducer a ( Order a ) where
+ unit = Order
+
+instance Functor Order where
+ fmap f ( Order a ) = Order ( f a )
+
+instance Pointed Order where
+ point = Order
+
+instance Copointed Order where
+ extract = getOrder
+
+
+data Priority a = MinBound | Priority a | MaxBound deriving ( Eq , Read , Show )
+
+instance Bounded ( Priority a ) where
+ minBound = MinBound
+ maxBound = MaxBound
+
+instance Ord a => Ord ( Priority a ) where
+ MinBound <= _ = True
+ Priority _ <= MinBound = False
+ Priority a <= Priority b = a <= b
+ Priority _ <= MaxBound = True
+ MaxBound <= MaxBound = True
+ MaxBound <= _ = False
+
+ MinBound `min` _ = MinBound
+ _ `min` MinBound = MinBound
+ Priority a `min` Priority b = Priority ( a `min` b )
+ u `min` MaxBound = u
+ MaxBound `min` v = v
+
+ MinBound `max` v = v
+ u `max` MinBound = u
+ Priority a `max` Priority b = Priority ( a `max` b )
+ _ `max` MaxBound = MaxBound
+ MaxBound `max` _ = MaxBound
+
+instance Arbitrary a => Arbitrary ( Priority a ) where
+ arbitrary = frequency [ ( 1 , return MinBound )
+ , ( 10 , fmap Priority arbitrary )
+ , ( 1 , return MaxBound ) ]
+ shrink ( Priority x ) = MinBound : MaxBound : fmap Priority ( shrink x )
+ shrink MinBound = []
+ shrink MaxBound = []
+
+instance CoArbitrary a => CoArbitrary ( Priority a ) where
+ coarbitrary MinBound = variant ( 0 :: Int )
+ coarbitrary ( Priority a ) = variant ( 1 :: Int ) . coarbitrary a
+ coarbitrary MaxBound = variant ( 2 :: Int )
+
+instance Ord a => Monoid ( Priority a ) where
+ mappend = max
+ mempty = minBound
+
+instance Ord a => Multiplicative ( Priority a ) where
+ times = min
+ one = maxBound
+
+instance Ord a => Ringoid ( Priority a )
+instance Ord a => LeftSemiNearRing ( Priority a )
+instance Ord a => RightSemiNearRing ( Priority a )
+instance Ord a => SemiRing ( Priority a )
+
+instance Ord a => Reducer a ( Priority a ) where
+ unit = Priority
+
+instance Ord a => Reducer ( MinPriority a ) ( Priority a ) where
+ unit ( MinPriority Nothing ) = MaxBound
+ unit ( MinPriority ( Just x ) ) = Priority x
+
+instance Ord a => Reducer ( MaxPriority a ) ( Priority a ) where
+ unit ( MaxPriority Nothing ) = MinBound
+ unit ( MaxPriority ( Just x ) ) = Priority x
+
+instance Functor Priority where
+ fmap _ MaxBound = MaxBound
+ fmap f ( Priority a ) = Priority ( f a )
+ fmap _ MinBound = MinBound
+
+instance Pointed Priority where
+ point = Priority
hunk ./doc/html/monoids/src/Data-Ring-Semi-Tropical.html 79
-instance ( Ord a , Num a ) => LeftSemiNearRing ( Tropical a )
-instance ( Ord a , Num a ) => RightSemiNearRing ( Tropical a )
-instance ( Ord a , Num a ) => SemiRing ( Tropical a )
+instance ( Ord a , Num a ) => Ringoid ( Tropical a )
+instance ( Ord a , Num a ) => LeftSemiNearRing ( Tropical a )
+instance ( Ord a , Num a ) => RightSemiNearRing ( Tropical a )
+instance ( Ord a , Num a ) => SemiRing ( Tropical a )
}