[auto ekmett@gmail.com**20090330072600] { addfile ./doc/html/monoids/Data-Ring-Semi-Natural.html addfile ./doc/html/monoids/src/Data-Ring-Semi-Natural.html hunk ./doc/html/monoids/Data-Group-Combinators.html 22 ->monoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce framework f => Module Natural (Traversal f)Applicative f => RightModule Natural (Traversal f)Applicative f => LeftModule Natural (Traversal f)ApplicativeAlternative f => Module Natural (Alt f a)Alternative f => RightModule Natural (Alt f a)Alternative f => LeftModule Natural (Alt f a)monoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce framework k => Module Natural (GEndo k a)Category k => RightModule Natural (GEndo k a)Category k => LeftModule Natural (GEndo k a)Category m m m)Monoid m => Module Natural (CMonoid m m m)Monoid m => RightModule Natural (CMonoid m m m)Monoid m => LeftModule Natural (CMonoidmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkFromString m)Monoid m => Module Natural (FromString m)Monoid m => RightModule Natural (FromString m)Monoid m => LeftModule Natural (monoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce framework a)Module Natural (Free a)RightModule Natural (Free a)LeftModule Natural (Freemonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce framework Seq a)Eq a => Module Natural (RLE Seq a)Eq a => RightModule Natural (RLE Seq a)Eq a => LeftModule Natural (RLEmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce framework file
file
= Pos file !!SourceLine !SourceColumn
| Lines !!SourceLine !SourceColumn
| Columns !!SourceColumn
| Tab !!SourceColumn !SourceColumn
Constructors
Pos file !!SourceLine !SourceColumnAn absolute position in a file is known, or an overriding #line directive has been seen +
Lines !!SourceLine !SourceColumnWe've seen some carriage returns. +
Columns !!SourceColumnWe've only seen part of a line. +
Tab !!SourceColumn !SourceColumnWe have an unhandled tab to deal with. +
Module Natural (SourcePosition f)RightModule Natural (SourcePosition f)LeftModule Natural (SourcePosition f)monoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkUTF8 m)CharReducer m => Module Natural (UTF8 m)CharReducer m => RightModule Natural (UTF8 m)CharReducer m => LeftModule Natural (monoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce framework f => Module Natural (Action f)Monad f => RightModule Natural (Action f)Monad f => LeftModule Natural (Action f)MonadMonadPlus f => Module Natural (MonadSum f a)MonadPlus f => RightModule Natural (MonadSum f a)MonadPlus f => LeftModule Natural (MonadSum f a)monoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkMultiplicative NaturalMultiplicative m => Module Natural (Log m)Multiplicative m => RightModule Natural (Log m)Multiplicative m => LeftModule Natural (Log m)monoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce framework m)Monoid m => Module Natural (Self m)Monoid m => RightModule Natural (Self m)Monoid m => LeftModule Natural (Selfmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkLeftModule Natural OrderingLeftModule Natural OrderingLeftModule Natural ()LeftModule Natural ()LeftModule Natural AllLeftModule Natural AllLeftModule Natural AnyLeftModule Natural AnyLeftModule Natural ([] a)LeftModule Natural ([] a)Monoid m => LeftModule Natural (Dual m)Monoid m => LeftModule Natural (Dual m)LeftModule Natural (Endo a)LeftModule Natural (Endo a)Num a => LeftModule Natural (Sum a)Num a => LeftModule Natural (Sum a)Num a => LeftModule Natural (Product a)Num a => LeftModule Natural (Product a)LeftModule Natural (First a)LeftModule Natural (First a)LeftModule Natural (Last a)LeftModule Natural (Last a)CharReducer m => LeftModule Natural (UTF8 m)CharReducer m => LeftModule Natural (UTF8 m)LeftModule Natural (SourcePosition f)LeftModule Natural (SourcePosition f)Monoid m => LeftModule Natural (Self m)Monoid m => LeftModule Natural (Self m)Monoid m => LeftModule Natural (FromString m)Monoid m => LeftModule Natural (FromString m)Multiplicative m => LeftModule Natural (Log m)Multiplicative m => LeftModule Natural (Log m)Applicative f => LeftModule Natural (Traversal f)Applicative f => LeftModule Natural (Traversal f)Monad f => LeftModule Natural (Action f)Monad f => LeftModule Natural (Action f)LeftModule Natural (Free a)LeftModule Natural (Free a)(LeftModule r m, LeftModule r n) => LeftModule r ((,) m n)Monoid m => LeftModule Natural (a -> m)Monoid m => LeftModule Natural (a -> m)Category k => LeftModule Natural (GEndo k a)Category k => LeftModule Natural (GEndo k a)Alternative f => LeftModule Natural (Alt f a)Alternative f => LeftModule Natural (Alt f a)MonadPlus f => LeftModule Natural (MonadSum f a)MonadPlus f => LeftModule Natural (MonadSum f a)Eq a => LeftModule Natural (RLE Seq a)Eq a => LeftModule Natural (RLE Seq a)(LeftModule r m, LeftModule r n, LeftModule r o) => LeftModule r ((,,) m n o)Monoid m => LeftModule Natural (CMonoid m m m)Monoid m => LeftModule Natural (CMonoid m m m)(LeftModule r m, LeftModule r n, LeftModule r o, LeftModule r p) => LeftModule r ((,,,) m n o p)(LeftModule r m, LeftModule r n, LeftModule r o, LeftModule r p, LeftModule r q) => LeftModule r ((,,,,) m n o p q)RightModule Natural OrderingRightModule Natural OrderingRightModule Natural ()RightModule Natural ()RightModule Natural AllRightModule Natural AllRightModule Natural AnyRightModule Natural AnyRightModule Natural ([] a)RightModule Natural ([] a)Monoid m => RightModule Natural (Dual m)Monoid m => RightModule Natural (Dual m)RightModule Natural (Endo a)RightModule Natural (Endo a)Num a => RightModule Natural (Sum a)Num a => RightModule Natural (Sum a)Num a => RightModule Natural (Product a)Num a => RightModule Natural (Product a)RightModule Natural (First a)RightModule Natural (First a)RightModule Natural (Last a)RightModule Natural (Last a)CharReducer m => RightModule Natural (UTF8 m)CharReducer m => RightModule Natural (UTF8 m)RightModule Natural (SourcePosition f)RightModule Natural (SourcePosition f)Monoid m => RightModule Natural (Self m)Monoid m => RightModule Natural (Self m)Monoid m => RightModule Natural (FromString m)Monoid m => RightModule Natural (FromString m)Multiplicative m => RightModule Natural (Log m)Multiplicative m => RightModule Natural (Log m)Applicative f => RightModule Natural (Traversal f)Applicative f => RightModule Natural (Traversal f)Monad f => RightModule Natural (Action f)Monad f => RightModule Natural (Action f)RightModule Natural (Free a)RightModule Natural (Free a)(RightModule r m, RightModule r n) => RightModule r ((,) m n)Monoid m => RightModule Natural (a -> m)Monoid m => RightModule Natural (a -> m)Category k => RightModule Natural (GEndo k a)Category k => RightModule Natural (GEndo k a)Alternative f => RightModule Natural (Alt f a)Alternative f => RightModule Natural (Alt f a)MonadPlus f => RightModule Natural (MonadSum f a)MonadPlus f => RightModule Natural (MonadSum f a)Eq a => RightModule Natural (RLE Seq a)Eq a => RightModule Natural (RLE Seq a)(RightModule r m, RightModule r n, RightModule r o) => RightModule r ((,,) m n o)Monoid m => RightModule Natural (CMonoid m m m)Monoid m => RightModule Natural (CMonoid m m m)(RightModule r m, RightModule r n, RightModule r o, RightModule r p) => RightModule r ((,,,) m n o p)(RightModule r m, RightModule r n, RightModule r o, RightModule r p, RightModule r q) => RightModule r ((,,,,) m n o p q)Module Natural OrderingModule Natural OrderingModule Natural ()Module Natural ()Module Natural AllModule Natural AllModule Natural AnyModule Natural AnyModule Natural ([] a)Module Natural ([] a)Monoid m => Module Natural (Dual m)Monoid m => Module Natural (Dual m)Module Natural (Endo a)Module Natural (Endo a)Num a => Module Natural (Sum a)Num a => Module Natural (Sum a)Num a => Module Natural (Product a)Num a => Module Natural (Product a)Module Natural (First a)Module Natural (First a)Module Natural (Last a)Module Natural (Last a)CharReducer m => Module Natural (UTF8 m)CharReducer m => Module Natural (UTF8 m)Module Natural (SourcePosition f)Module Natural (SourcePosition f)Monoid m => Module Natural (Self m)Monoid m => Module Natural (Self m)Monoid m => Module Natural (FromString m)Monoid m => Module Natural (FromString m)Multiplicative m => Module Natural (Log m)Multiplicative m => Module Natural (Log m)Applicative f => Module Natural (Traversal f)Applicative f => Module Natural (Traversal f)Monad f => Module Natural (Action f)Monad f => Module Natural (Action f)Module Natural (Free a)Module Natural (Free a)(Module r m, Module r n) => Module r ((,) m n)Monoid m => Module Natural (a -> m)Monoid m => Module Natural (a -> m)Category k => Module Natural (GEndo k a)Category k => Module Natural (GEndo k a)Alternative f => Module Natural (Alt f a)Alternative f => Module Natural (Alt f a)MonadPlus f => Module Natural (MonadSum f a)MonadPlus f => Module Natural (MonadSum f a)Eq a => Module Natural (RLE Seq a)Eq a => Module Natural (RLE Seq a)(Module r m, Module r n, Module r o) => Module r ((,,) m n o)Monoid m => Module Natural (CMonoid m m m)Monoid m => Module Natural (CMonoid m m m)(Module r m, Module r n, Module r o, Module r p) => Module r ((,,,) m n o p)(Module r m, Module r n, Module r o, Module r p, Module r q) => Module r ((,,,,) m n o p q) + +Data.Ring.Semi.Natural
 monoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkSource codeContentsIndex
Data.Ring.Semi.Natural
Portabilitynon-portable (type families, MPTCs)
Stabilityexperimental
Maintainerekmett@gmail.com
Description

Monoids for non-negative integers (Natural) and ints (Nat) +

The naturals form a module over any of our monoids. +

Documentation
module Data.Ring.Semi
data Natural Source
show/hide Instances
Enum Natural
Eq Natural
Integral Natural
Num Natural
Ord Natural
Read Natural
Real Natural
Show Natural
Monoid Natural
Multiplicative Natural
LeftSemiNearRing Natural
RightSemiNearRing Natural
SemiRing Natural
Module Natural Ordering
Module Natural ()
Module Natural All
Module Natural Any
RightModule Natural Ordering
RightModule Natural ()
RightModule Natural All
RightModule Natural Any
LeftModule Natural Ordering
LeftModule Natural ()
LeftModule Natural All
LeftModule Natural Any
Module Natural ([] a)
Monoid m => Module Natural (Dual m)
Module Natural (Endo a)
Num a => Module Natural (Sum a)
Num a => Module Natural (Product a)
Module Natural (First a)
Module Natural (Last a)
CharReducer m => Module Natural (UTF8 m)
Module Natural (SourcePosition f)
Monoid m => Module Natural (Self m)
Monoid m => Module Natural (FromString m)
Multiplicative m => Module Natural (Log m)
Applicative f => Module Natural (Traversal f)
Monad f => Module Natural (Action f)
Module Natural (Free a)
RightModule Natural ([] a)
Monoid m => RightModule Natural (Dual m)
RightModule Natural (Endo a)
Num a => RightModule Natural (Sum a)
Num a => RightModule Natural (Product a)
RightModule Natural (First a)
RightModule Natural (Last a)
CharReducer m => RightModule Natural (UTF8 m)
RightModule Natural (SourcePosition f)
Monoid m => RightModule Natural (Self m)
Monoid m => RightModule Natural (FromString m)
Multiplicative m => RightModule Natural (Log m)
Applicative f => RightModule Natural (Traversal f)
Monad f => RightModule Natural (Action f)
RightModule Natural (Free a)
LeftModule Natural ([] a)
Monoid m => LeftModule Natural (Dual m)
LeftModule Natural (Endo a)
Num a => LeftModule Natural (Sum a)
Num a => LeftModule Natural (Product a)
LeftModule Natural (First a)
LeftModule Natural (Last a)
CharReducer m => LeftModule Natural (UTF8 m)
LeftModule Natural (SourcePosition f)
Monoid m => LeftModule Natural (Self m)
Monoid m => LeftModule Natural (FromString m)
Multiplicative m => LeftModule Natural (Log m)
Applicative f => LeftModule Natural (Traversal f)
Monad f => LeftModule Natural (Action f)
LeftModule Natural (Free a)
Monoid m => Module Natural (a -> m)
Category k => Module Natural (GEndo k a)
Alternative f => Module Natural (Alt f a)
MonadPlus f => Module Natural (MonadSum f a)
Eq a => Module Natural (RLE Seq a)
Monoid m => RightModule Natural (a -> m)
Category k => RightModule Natural (GEndo k a)
Alternative f => RightModule Natural (Alt f a)
MonadPlus f => RightModule Natural (MonadSum f a)
Eq a => RightModule Natural (RLE Seq a)
Monoid m => LeftModule Natural (a -> m)
Category k => LeftModule Natural (GEndo k a)
Alternative f => LeftModule Natural (Alt f a)
MonadPlus f => LeftModule Natural (MonadSum f a)
Eq a => LeftModule Natural (RLE Seq a)
Monoid m => Module Natural (CMonoid m m m)
Monoid m => RightModule Natural (CMonoid m m m)
Monoid m => LeftModule Natural (CMonoid m m m)
natural :: Integer -> NaturalSource
Produced by Haddock version 2.3.0
hunk ./doc/html/monoids/Data-Ring-Semi-Near.html 22 ->monoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkLeftSemiNearRing NaturalRightSemiNearRing Naturalmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkSemiRing Naturalmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce framework (Index)monoids-0.1.18: Monoids, specialized containers and a general map/reduce framework (Index)monoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationColumnsData.Monoid.Lexical.SourcePositionData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiation, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation1 (Data Constructor)Data.Monoid.Lexical.SourcePosition2 (Type/Class), Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Union, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Monoid.Ord, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiationNaturalData.Ring.Semi.NaturalnaturalData.Ring.Semi.Natural, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Ring.Module.AutomaticDifferentiation, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.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.Module.AutomaticDifferentiationPosData.Monoid.Lexical.SourcePositionData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiation, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, 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.Module.AutomaticDifferentiation, 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.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Module.AutomaticDifferentiationData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Monoid.Combinators, Data.Monoid.Generator.Free, Data.Monoid.Generator.RLE, Data.Ring.Semi.Natural, Data.Ring.Module.AutomaticDifferentiationTabData.Monoid.Lexical.SourcePosition, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, 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.Module.AutomaticDifferentiation, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.Sugar, Data.Ring, Data.Ring.Boolean, Data.Ring.FromNum, Data.Ring.ModularArithmetic, Data.Ring.Module, Data.Monoid.Applicative, Data.Monoid.Monad, Data.Ring.Module.AutomaticDifferentiation, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, Data.Group.Combinators, Data.Group.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.Module.AutomaticDifferentiationmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkmonoids-0.1.18: Monoids, specialized containers and a general map/reduce frameworkData.Ring.Semi.Naturalinstance (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) +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-Lexical-SourcePosition.html 32 - , SourcePosition + , SourcePosition(Pos,Lines,Columns,Tab) hunk ./doc/html/monoids/src/Data-Monoid-Lexical-SourcePosition.html 41 -import Prelude hiding (lex) -import Control.Functor.Extras -import Control.Functor.Pointed -import Data.Monoid.Reducer.Char -import Data.Monoid.Generator -import Data.String +import Control.Functor.Extras +import Control.Functor.Pointed +import Data.Monoid.Reducer.Char +import Data.Monoid.Generator +import Data.String + hunk ./doc/html/monoids/src/Data-Monoid-Lexical-SourcePosition.html 48 -type SourceLine = Int -type SourceColumn = Int - --- | A 'Monoid' of partial information about locations in a source file. --- This is polymorphic in the kind of information you want to maintain about each source file. -data SourcePosition file - = Pos file {-# UNPACK #-} !SourceLine !SourceColumn -- ^ An absolute position in a file is known, or an overriding #line directive has been seen - | Lines {-# UNPACK #-} !SourceLine !SourceColumn -- ^ We've seen some carriage returns. - | Columns {-# UNPACK #-} !SourceColumn -- ^ We've only seen part of a line. - | Tab {-# UNPACK #-} !SourceColumn !SourceColumn -- ^ We have an unhandled tab to deal with. - deriving (Read,Show,Eq) - --- | Compute the location of the next standard 8-column aligned tab -nextTab :: Int -> Int -nextTab x = x + (8 - (x-1) `mod` 8) - -instance Functor SourcePosition where - fmap g (Pos f l c) = Pos (g f) l c - fmap _ (Lines l c) = Lines l c - fmap _ (Columns c) = Columns c - fmap _ (Tab x y) = Tab x y - -instance Pointed SourcePosition where - point f = Pos f 1 1 - -instance FunctorZero SourcePosition where - fzero = mempty - -instance FunctorPlus SourcePosition where - fplus = mappend - -instance IsString (SourcePosition file) where - fromString = reduce - --- accumulate partial information -instance Monoid (SourcePosition file) where - mempty = Columns 0 - - Pos f l _ `mappend` Lines m d = Pos f (l + m) d - Pos f l c `mappend` Columns d = Pos f l (c + d) - Pos f l c `mappend` Tab x y = Pos f l (nextTab (c + x) + y) - Lines l _ `mappend` Lines m d = Lines (l + m) d - Lines l c `mappend` Columns d = Lines l (c + d) - Lines l c `mappend` Tab x y = Lines l (nextTab (c + x) + y) - Columns c `mappend` Columns d = Columns (c + d) - Columns c `mappend` Tab x y = Tab (c + x) y - Tab _ _ `mappend` Lines m d = Lines m d - Tab x y `mappend` Columns d = Tab x (y + d) - Tab x y `mappend` Tab x' y' = Tab x (nextTab (y + x') + y') - _ `mappend` pos = pos - -instance Reducer Char (SourcePosition file) where - unit '\n' = Lines 1 1 - unit '\t' = Tab 0 0 - unit _ = Columns 1 - --- Indicate that we ignore invalid characters to the UTF8 parser -instance CharReducer (SourcePosition file) - --- | lift information about a source file into a starting 'SourcePosition' for that file -startOfFile :: f -> SourcePosition f -startOfFile = point - --- | extract partial information about the current column, even in the absence of knowledge of the source file -sourceColumn :: SourcePosition f -> Maybe SourceColumn -sourceColumn (Pos _ _ c) = Just c -sourceColumn (Lines _ c) = Just c -sourceColumn _ = Nothing - --- | extract partial information about the current line number if possible -sourceLine :: SourcePosition f -> Maybe SourceLine -sourceLine (Pos _ l _) = Just l -sourceLine _ = Nothing - --- | extract the standard format for an absolute source position -showSourcePosition :: SourcePosition String -> String -showSourcePosition pos = showSourcePosition' (point "-" `mappend` pos) where - showSourcePosition' (Pos f l c) = f ++ ":" ++ show l ++ ":" ++ show c - showSourcePosition' _ = undefined + +type SourceLine = Int +type SourceColumn = Int + +-- | A 'Monoid' of partial information about locations in a source file. +-- This is polymorphic in the kind of information you want to maintain about each source file. +data SourcePosition file + = Pos file {-# UNPACK #-} !SourceLine !SourceColumn -- ^ An absolute position in a file is known, or an overriding #line directive has been seen + | Lines {-# UNPACK #-} !SourceLine !SourceColumn -- ^ We've seen some carriage returns. + | Columns {-# UNPACK #-} !SourceColumn -- ^ We've only seen part of a line. + | Tab {-# UNPACK #-} !SourceColumn !SourceColumn -- ^ We have an unhandled tab to deal with. + deriving (Read,Show,Eq) + +-- | Compute the location of the next standard 8-column aligned tab +nextTab :: Int -> Int +nextTab x = x + (8 - (x-1) `mod` 8) + +instance Functor SourcePosition where + fmap g (Pos f l c) = Pos (g f) l c + fmap _ (Lines l c) = Lines l c + fmap _ (Columns c) = Columns c + fmap _ (Tab x y) = Tab x y + +instance Pointed SourcePosition where + point f = Pos f 1 1 + +instance FunctorZero SourcePosition where + fzero = mempty + +instance FunctorPlus SourcePosition where + fplus = mappend + +instance IsString (SourcePosition file) where + fromString = reduce + +-- accumulate partial information +instance Monoid (SourcePosition file) where + mempty = Columns 0 + + Pos f l _ `mappend` Lines m d = Pos f (l + m) d + Pos f l c `mappend` Columns d = Pos f l (c + d) + Pos f l c `mappend` Tab x y = Pos f l (nextTab (c + x) + y) + Lines l _ `mappend` Lines m d = Lines (l + m) d + Lines l c `mappend` Columns d = Lines l (c + d) + Lines l c `mappend` Tab x y = Lines l (nextTab (c + x) + y) + Columns c `mappend` Columns d = Columns (c + d) + Columns c `mappend` Tab x y = Tab (c + x) y + Tab _ _ `mappend` Lines m d = Lines m d + Tab x y `mappend` Columns d = Tab x (y + d) + Tab x y `mappend` Tab x' y' = Tab x (nextTab (y + x') + y') + _ `mappend` pos = pos + +instance Reducer Char (SourcePosition file) where + unit '\n' = Lines 1 1 + unit '\t' = Tab 0 0 + unit _ = Columns 1 + +-- Indicate that we ignore invalid characters to the UTF8 parser +instance CharReducer (SourcePosition file) + +-- | lift information about a source file into a starting 'SourcePosition' for that file +startOfFile :: f -> SourcePosition f +startOfFile = point + +-- | extract partial information about the current column, even in the absence of knowledge of the source file +sourceColumn :: SourcePosition f -> Maybe SourceColumn +sourceColumn (Pos _ _ c) = Just c +sourceColumn (Lines _ c) = Just c +sourceColumn _ = Nothing + +-- | extract partial information about the current line number if possible +sourceLine :: SourcePosition f -> Maybe SourceLine +sourceLine (Pos _ l _) = Just l +sourceLine _ = Nothing + +-- | extract the standard format for an absolute source position +showSourcePosition :: SourcePosition String -> String +showSourcePosition pos = showSourcePosition' (point "-" `mappend` pos) where + showSourcePosition' (Pos f l c) = f ++ ":" ++ show l ++ ":" ++ show c + showSourcePosition' _ = undefined hunk ./doc/html/monoids/src/Data-Ring-Module.html 48 --- instance Monoid m => LeftModule Int m where i *. m = Monoid.replicate m i --- instance Monoid m => RightModule Int m where m .* i = Monoid.replicate m i --- instance Monoid m => Module Int m - --- instance Monoid m => LeftModule Integer m where i *. m = Monoid.replicate m i --- instance Monoid m => RightModule Integer m where m .* i = Monoid.replicate m i --- instance Monoid m => Module Integer m +instance (LeftModule r m, LeftModule r n) => LeftModule r (m,n) where + r *. (m,n) = (r *. m, r *. n) +instance (LeftModule r m, LeftModule r n, LeftModule r o) => LeftModule r (m,n,o) where + r *. (m,n,o) = (r *. m, r *. n, r *. o) +instance (LeftModule r m, LeftModule r n, LeftModule r o, LeftModule r p) => LeftModule r (m,n,o,p) where + r *. (m,n,o,p) = (r *. m, r *. n, r *. o, r *. p) +instance (LeftModule r m, LeftModule r n, LeftModule r o, LeftModule r p, LeftModule r q) => LeftModule r (m,n,o,p,q) where + r *. (m,n,o,p,q) = (r *. m, r *. n, r *. o, r *. p, r *. q) + +instance (RightModule r m, RightModule r n) => RightModule r (m,n) where + (m,n) .* r = (m .* r, n .* r) +instance (RightModule r m, RightModule r n, RightModule r o) => RightModule r (m,n,o) where + (m,n,o) .* r = (m .* r, n .* r, o .* r) +instance (RightModule r m, RightModule r n, RightModule r o, RightModule r p ) => RightModule r (m,n,o,p) where + (m,n,o,p) .* r = (m .* r, n .* r, o .* r, p .* r) +instance (RightModule r m, RightModule r n, RightModule r o, RightModule r p, RightModule r q ) => RightModule r (m,n,o,p,q) where + (m,n,o,p,q) .* r = (m .* r, n .* r, o .* r, p .* r, q .* r) + +instance (Module r m, Module r n) => Module r (m,n) +instance (Module r m, Module r n, Module r o) => Module r (m,n,o) +instance (Module r m, Module r n, Module r o, Module r p) => Module r (m,n,o,p) +instance (Module r m, Module r n, Module r o, Module r p, Module r q) => Module r (m,n,o,p,q) hunk ./doc/html/monoids/src/Data-Ring-Semi-Natural.html 1 + + + + +Data/Ring/Semi/Natural.hs + + + +
{-# LANGUAGE UndecidableInstances, TypeOperators, FlexibleContexts, MultiParamTypeClasses, FlexibleInstances, TypeFamilies #-}
+
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Ring.Semi.Natural
+-- Copyright   :  (c) Edward Kmett 2009
+-- License     :  BSD-style
+-- Maintainer  :  ekmett@gmail.com
+-- Stability   :  experimental
+-- Portability :  non-portable (type families, MPTCs)
+--
+-- Monoids for non-negative integers ('Natural') and ints ('Nat')
+--
+-- The naturals form a module over any of our monoids.
+-----------------------------------------------------------------------------
+
+module Data.Ring.Semi.Natural
+    ( module Data.Ring.Semi
+    , Natural
+    , natural
+    ) where
+
+import Prelude hiding (id,(.))
+import Numeric (readDec, showInt)
+import Control.Applicative
+import Control.Monad
+import Data.Ring.Semi
+import qualified Data.Monoid.Combinators as Monoid
+-- import Data.Word
+import Data.Monoid.Monad
+import Data.Monoid.Applicative
+import Data.Monoid.Multiplicative
+import Data.Monoid.Categorical
+import Data.Monoid.Self
+import Data.Monoid.FromString
+import Data.Monoid.Lexical.SourcePosition
+import Data.Monoid.Lexical.UTF8.Decoder
+import Data.Monoid.Generator.Free
+import Data.Monoid.Generator.RLE
+import Data.Sequence (Seq)
+
+natural :: Integer -> Natural
+natural = fromInteger
+
+newtype Natural = Natural { getNatural :: Integer } 
+    deriving (Eq,Ord)
+
+instance Read Natural where
+    readsPrec = const readDec
+
+instance Show Natural where
+    showsPrec = const showInt
+
+instance Num Natural where
+    Natural a + Natural b = Natural (a + b)
+    Natural a - Natural b = fromInteger (a - b) 
+    Natural a * Natural b = Natural (a * b)
+    abs = id
+    signum = Natural . signum . getNatural
+    fromInteger x | x < 0     = error "Natural < 0"
+                  | otherwise = Natural x
+    negate 0 = 0 
+    negate _ = error "Natural < 0"
+
+instance Enum Natural where
+    succ (Natural n) = Natural (n + 1)
+    pred (Natural 0) = error "Natural < 0"
+    pred (Natural n) = Natural (n - 1)
+    toEnum n | n < 0 = error "Natural < 0"
+    toEnum n = Natural (fromIntegral n)
+    fromEnum = fromIntegral
+    enumFrom (Natural n) = Natural `map` enumFrom n
+    enumFromThen (Natural n) (Natural np) 
+        | np < n = Natural `map` enumFromThenTo n np 0
+        | otherwise = Natural `map` enumFromThen n np
+    enumFromTo (Natural n) (Natural m) = Natural `map` enumFromTo n m
+    enumFromThenTo (Natural n) (Natural m) (Natural o) = Natural `map` enumFromThenTo n m o
+
+instance Real Natural where
+    toRational = toRational . getNatural
+
+instance Integral Natural where
+    toInteger = getNatural
+    Natural a `quot` Natural b = Natural (a `quot` b)
+    Natural a `rem` Natural b = Natural (a `rem` b)
+    Natural a `div` Natural b = Natural (a `div` b)
+    Natural a `mod` Natural b = Natural (a `mod` b)
+    Natural a `quotRem` Natural b = (Natural q,Natural r) where ~(q,r) = a `quotRem` b
+    Natural a `divMod` Natural b = (Natural q,Natural r) where ~(q,r) = a `divMod` b
+
+instance Monoid Natural where
+    mempty = 0
+    mappend = (+)
+
+instance Multiplicative Natural where
+    one = 1
+    times = (*)
+
+instance LeftSemiNearRing Natural
+instance RightSemiNearRing Natural
+instance SemiRing Natural
+
+instance LeftModule Natural () where _ *. _ = ()
+instance RightModule Natural () where _ .* _ = ()
+instance Module Natural ()
+
+-- idempotent monoids
+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
+
+-- other monoids
+
+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)
+
+-- FromString
+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)
+
+-- Self
+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)
+
+-- Free Generator
+instance LeftModule  Natural (Free a) where (*.) = flip Monoid.replicate
+instance RightModule Natural (Free a) where (.*) = Monoid.replicate
+instance Module Natural (Free a)
+
+-- RLE Seq
+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)
+
+-- Categorical
+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)
+
+-- Alternative
+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 (Alternative f, Monoid m) => LeftModule Natural  (App f m) where (*.) = flip Monoid.replicate
+--instance (Alternative f, Monoid m) => RightModule Natural (App f m) where (.*) = Monoid.replicate
+--instance (Alternative f, Monoid m) => Module Natural (App f m)  
+
+-- Monad
+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 (MonadPlus f, Monoid m) => LeftModule Natural  (Mon f m) where (*.) = flip Monoid.replicate
+--instance (MonadPlus f, Monoid m)  => RightModule Natural (Mon f m) where (.*) = Monoid.replicate
+--instance (MonadPlus f, Monoid m) => Module Natural (Mon f m)  
+
+-- Lexical 
+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) 
+
+
+-- TODO
+--
+-- Control.Monad.*
+-- ParsecT
+-- FingerTree
+-- Int, Integer, Ratio
+-- SourcePosition
+-- Replace Natural here with some other notion of NonNegative a 
+-- Words, Lines, Unspaced, Unlined
+-- Union/UnionWith, Map, Set, etc.
+-- Max, Min, MaxPriority, MinPriority idempotent
+-- BoolRing
+-- Seq
+
+ }