[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)Applicative Alternative 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 (CMonoid monoids-0.1.17: Monoids, specialized containers and a general map/reduce framework monoids-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 framework monoids-0.1.18: Monoids, specialized containers and a general map/reduce framework a)Module Natural (Free a)RightModule Natural (Free a)LeftModule Natural (Free monoids-0.1.17: Monoids, specialized containers and a general map/reduce framework monoids-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 (RLE monoids-0.1.17: Monoids, specialized containers and a general map/reduce framework monoids-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 frameworkConstructorsModule 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 framework monoids-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)Monad MonadPlus 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 Natural Multiplicative 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 (Self monoids-0.1.17: Monoids, specialized containers and a general map/reduce framework monoids-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 Ordering LeftModule Natural Ordering LeftModule Natural ()LeftModule Natural ()LeftModule Natural All LeftModule Natural All LeftModule Natural Any LeftModule Natural Any LeftModule 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 Ordering RightModule Natural Ordering RightModule Natural ()RightModule Natural ()RightModule Natural All RightModule Natural All RightModule Natural Any RightModule Natural Any RightModule 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 Ordering Module Natural Ordering Module Natural ()Module Natural ()Module Natural All Module Natural All Module Natural Any Module Natural Any Module 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 Data.Ring.Semi.Natural Portability non-portable (type families, MPTCs) Stability experimental Maintainer ekmett@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 Instances
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 Natural RightSemiNearRing 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 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 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 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.SourcePosition Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, 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.AutomaticDifferentiation Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, 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.SourcePosition 2 (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.AutomaticDifferentiationNatural Data.Ring.Semi.Natural natural Data.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.AutomaticDifferentiationPos Data.Monoid.Lexical.SourcePosition Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.Words, Data.Monoid.Self, Data.Monoid.Generator.LZ78, Data.Monoid.FromString, Data.Monoid.Categorical, Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Sugar, Data.Ring.Semi.Near, Data.Ring.Semi, Data.Ring.Semi.Ord, Data.Ring.Semi.Tropical, Data.Ring.Sugar, Data.Group, 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.Natural 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 )
+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
-
-
-
-data SourcePosition file
- = Pos file ! SourceLine ! SourceColumn
- | Lines ! SourceLine ! SourceColumn
- | Columns ! SourceColumn
- | Tab ! SourceColumn ! SourceColumn
- deriving ( Read , Show , Eq )
-
-
-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
-
-
-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
-
-
-instance CharReducer ( SourcePosition file )
-
-
-startOfFile :: f -> SourcePosition f
-startOfFile = point
-
-
-sourceColumn :: SourcePosition f -> Maybe SourceColumn
-sourceColumn ( Pos _ _ c ) = Just c
-sourceColumn ( Lines _ c ) = Just c
-sourceColumn _ = Nothing
-
-
-sourceLine :: SourcePosition f -> Maybe SourceLine
-sourceLine ( Pos _ l _ ) = Just l
-sourceLine _ = Nothing
-
-
-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
+
+
+
+data SourcePosition file
+ = Pos file ! SourceLine ! SourceColumn
+ | Lines ! SourceLine ! SourceColumn
+ | Columns ! SourceColumn
+ | Tab ! SourceColumn ! SourceColumn
+ deriving ( Read , Show , Eq )
+
+
+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
+
+
+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
+
+
+instance CharReducer ( SourcePosition file )
+
+
+startOfFile :: f -> SourcePosition f
+startOfFile = point
+
+
+sourceColumn :: SourcePosition f -> Maybe SourceColumn
+sourceColumn ( Pos _ _ c ) = Just c
+sourceColumn ( Lines _ c ) = Just c
+sourceColumn _ = Nothing
+
+
+sourceLine :: SourcePosition f -> Maybe SourceLine
+sourceLine ( Pos _ l _ ) = Just l
+sourceLine _ = Nothing
+
+
+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 ( 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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 . 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 ()
+
+
+instance LeftModule Natural Any where
+ 0 *. _ = mempty
+ _ *. m = m
+instance RightModule Natural Any where
+ _ .* 0 = mempty
+ m .* _ = m
+instance Module Natural Any
+
+instance LeftModule Natural All where
+ 0 *. _ = mempty
+ _ *. m = m
+instance RightModule Natural All where
+ _ .* 0 = mempty
+ m .* _ = m
+instance Module Natural All
+
+instance LeftModule Natural ( First a ) where
+ 0 *. _ = mempty
+ _ *. m = m
+instance RightModule Natural ( First a ) where
+ _ .* 0 = mempty
+ m .* _ = m
+instance Module Natural ( First a )
+
+instance LeftModule Natural ( Last a ) where
+ 0 *. _ = mempty
+ _ *. m = m
+instance RightModule Natural ( Last a ) where
+ _ .* 0 = mempty
+ m .* _ = m
+instance Module Natural ( Last a )
+
+instance LeftModule Natural Ordering where
+ 0 *. _ = mempty
+ _ *. m = m
+instance RightModule Natural Ordering where
+ _ .* 0 = mempty
+ m .* _ = m
+instance Module Natural Ordering
+
+
+
+instance LeftModule Natural [ a ] where ( *. ) = flip Monoid . replicate
+instance RightModule Natural [ a ] where ( .* ) = Monoid . replicate
+instance Module Natural [ a ]
+
+instance Monoid m => LeftModule Natural ( a -> m ) where ( *. ) = flip Monoid . replicate
+instance Monoid m => RightModule Natural ( a -> m ) where ( .* ) = Monoid . replicate
+instance Monoid m => Module Natural ( a -> m )
+
+instance Num a => LeftModule Natural ( Sum a ) where ( *. ) = flip Monoid . replicate
+instance Num a => RightModule Natural ( Sum a ) where ( .* ) = Monoid . replicate
+instance Num a => Module Natural ( Sum a )
+
+instance Num a => LeftModule Natural ( Product a ) where ( *. ) = flip ( .* )
+instance Num a => RightModule Natural ( Product a ) where Product m .* Natural n = Product ( m ^ n )
+instance Num a => Module Natural ( Product a )
+
+instance LeftModule Natural ( Endo a ) where ( *. ) = flip Monoid . replicate
+instance RightModule Natural ( Endo a ) where ( .* ) = Monoid . replicate
+instance Module Natural ( Endo a )
+
+instance Monoid m => LeftModule Natural ( Dual m ) where ( *. ) = flip Monoid . replicate
+instance Monoid m => RightModule Natural ( Dual m ) where ( .* ) = Monoid . replicate
+instance Monoid m => Module Natural ( Dual m )
+
+
+instance Monoid m => LeftModule Natural ( FromString m ) where ( *. ) = flip Monoid . replicate
+instance Monoid m => RightModule Natural ( FromString m ) where ( .* ) = Monoid . replicate
+instance Monoid m => Module Natural ( FromString m )
+
+
+instance Monoid m => LeftModule Natural ( Self m ) where ( *. ) = flip Monoid . replicate
+instance Monoid m => RightModule Natural ( Self m ) where ( .* ) = Monoid . replicate
+instance Monoid m => Module Natural ( Self m )
+
+
+instance LeftModule Natural ( Free a ) where ( *. ) = flip Monoid . replicate
+instance RightModule Natural ( Free a ) where ( .* ) = Monoid . replicate
+instance Module Natural ( Free a )
+
+
+instance Eq a => LeftModule Natural ( RLE Seq a ) where ( *. ) = flip Monoid . replicate
+instance Eq a => RightModule Natural ( RLE Seq a ) where ( .* ) = Monoid . replicate
+instance Eq a => Module Natural ( RLE Seq a )
+
+
+instance Category k => LeftModule Natural ( GEndo k a ) where ( *. ) = flip Monoid . replicate
+instance Category k => RightModule Natural ( GEndo k a ) where ( .* ) = Monoid . replicate
+instance Category k => Module Natural ( GEndo k a )
+
+instance Monoid m => LeftModule Natural ( CMonoid m m m ) where ( *. ) = flip Monoid . replicate
+instance Monoid m => RightModule Natural ( CMonoid m m m ) where ( .* ) = Monoid . replicate
+instance Monoid m => Module Natural ( CMonoid m m m )
+
+
+instance Applicative f => LeftModule Natural ( Traversal f ) where ( *. ) = flip Monoid . replicate
+instance Applicative f => RightModule Natural ( Traversal f ) where ( .* ) = Monoid . replicate
+instance Applicative f => Module Natural ( Traversal f )
+
+instance Alternative f => LeftModule Natural ( Alt f a ) where ( *. ) = flip Monoid . replicate
+instance Alternative f => RightModule Natural ( Alt f a ) where ( .* ) = Monoid . replicate
+instance Alternative f => Module Natural ( Alt f a )
+
+
+
+
+
+
+instance Monad f => LeftModule Natural ( Action f ) where ( *. ) = flip Monoid . replicate
+instance Monad f => RightModule Natural ( Action f ) where ( .* ) = Monoid . replicate
+instance Monad f => Module Natural ( Action f )
+
+instance MonadPlus f => LeftModule Natural ( MonadSum f a ) where ( *. ) = flip Monoid . replicate
+instance MonadPlus f => RightModule Natural ( MonadSum f a ) where ( .* ) = Monoid . replicate
+instance MonadPlus f => Module Natural ( MonadSum f a )
+
+
+
+
+
+
+instance LeftModule Natural ( SourcePosition f ) where
+ 0 *. _ = mempty
+ n *. Columns x = Columns ( fromIntegral n * x )
+ n *. Lines l c = Lines ( fromIntegral n * l ) c
+ _ *. Pos f l c = Pos f l c
+ n *. t = Monoid . replicate t n
+instance RightModule Natural ( SourcePosition f ) where ( .* ) = flip ( *. )
+instance Module Natural ( SourcePosition f )
+
+instance CharReducer m => LeftModule Natural ( UTF8 m ) where ( *. ) = flip Monoid . replicate
+instance CharReducer m => RightModule Natural ( UTF8 m ) where ( .* ) = Monoid . replicate
+instance CharReducer m => Module Natural ( UTF8 m )
+
+instance Multiplicative m => LeftModule Natural ( Log m ) where ( *. ) = flip Monoid . replicate
+instance Multiplicative m => RightModule Natural ( Log m ) where ( .* ) = Monoid . replicate
+instance Multiplicative m => Module Natural ( Log m )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
}