[documentation ekmett@gmail.com**20090327004201] { hunk ./dist/doc/html/monoids/Data-Group.html 214 +>Group a => Group (FromString a)MultiplicativeMonoid m => MultiplicativeMonoid (FromString m)Group a => Group (FromString a)MultiplicativeMonoid m => MultiplicativeMonoid (FromString m)Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Group, Data.Group.Sugar -infixl 6 `minus` - -class Monoid a => Group a where - -- additive inverse - gnegate :: a -> a - - -- right cancellation - minus :: a -> a -> a - a `minus` b = a `plus` gnegate b - -instance Num a => Group (Sum a) where - gnegate = Sum . negate . getSum - Sum a `minus` Sum b = Sum (a - b) - -instance Fractional a => Group (Product a) where - gnegate = Product . negate . getProduct - Product a `minus` Product b = Product (a / b) - -instance Group a => Group (Dual a) where - gnegate = Dual . gnegate . getDual - -instance Group a => Group (Self a) where - gnegate = Self . gnegate . getSelf - Self a `minus` Self b = Self (a `minus` b) +import Data.Monoid.FromString + +infixl 6 `minus` + +class Monoid a => Group a where + -- additive inverse + gnegate :: a -> a + + -- right cancellation + minus :: a -> a -> a + a `minus` b = a `plus` gnegate b + +instance Num a => Group (Sum a) where + gnegate = Sum . negate . getSum + Sum a `minus` Sum b = Sum (a - b) + +instance Fractional a => Group (Product a) where + gnegate = Product . negate . getProduct + Product a `minus` Product b = Product (a / b) + +instance Group a => Group (Dual a) where + gnegate = Dual . gnegate . getDual + +instance Group a => Group (Self a) where + gnegate = Self . gnegate . getSelf + Self a `minus` Self b = Self (a `minus` b) + +instance Group a => Group (FromString a) where + gnegate = FromString . gnegate . getFromString + FromString a `minus` FromString b = FromString (a `minus` b) hunk ./dist/doc/html/monoids/src/Data-Monoid-Multiplicative.html 18 -import Data.Monoid.Generator -import Data.Foldable - -class MultiplicativeMonoid m where - one :: m - times :: m -> m -> m - -class (MultiplicativeMonoid m, Monoid m) => Seminearring m - -instance Monoid m => MultiplicativeMonoid [m] where - one = [mempty] - xss `times` yss = [ xs `mappend` ys | xs <- xss, ys <- yss ] - -instance Monoid m => Seminearring [m] - -instance (Measured v m, Monoid m) => MultiplicativeMonoid (FingerTree v m) where - one = singleton mempty - xss `times` yss = getSelf . reduce . fmap (\xs -> fmap' (xs `mappend`) yss) $ toList xss - -instance (Measured v m, Monoid m) => Seminearring (FingerTree v m) - -instance MultiplicativeMonoid m => MultiplicativeMonoid (Self m) where - one = Self one - Self a `times` Self b = Self (a `times` b) +import Data.Monoid.FromString +import Data.Monoid.Generator +import Data.Foldable + +class MultiplicativeMonoid m where + one :: m + times :: m -> m -> m + +class (MultiplicativeMonoid m, Monoid m) => Seminearring m + +instance Monoid m => MultiplicativeMonoid [m] where + one = [mempty] + xss `times` yss = [ xs `mappend` ys | xs <- xss, ys <- yss ] + +instance Monoid m => Seminearring [m] + +instance (Measured v m, Monoid m) => MultiplicativeMonoid (FingerTree v m) where + one = singleton mempty + xss `times` yss = getSelf . reduce . fmap (\xs -> fmap' (xs `mappend`) yss) $ toList xss + +instance (Measured v m, Monoid m) => Seminearring (FingerTree v m) + +instance MultiplicativeMonoid m => MultiplicativeMonoid (Self m) where + one = Self one + Self a `times` Self b = Self (a `times` b) + +instance MultiplicativeMonoid m => MultiplicativeMonoid (FromString m) where + one = FromString one + FromString a `times` FromString b = FromString (a `times` b) }