[killed documentation ekmett@gmail.com**20090327091552] { hunk ./dist/doc/html/monoids/Data-Group-Sugar.html 1 - - -Data.Group.Sugar
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Group.Sugar
Documentation
module Data.Monoid.Additive.Sugar
module Data.Group
(-) :: Group g => g -> g -> gSource
negate :: Group g => g -> gSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Group-Sugar.html hunk ./dist/doc/html/monoids/Data-Group.html 1 - - -Data.Group
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Group
Documentation
module Data.Monoid.Additive
class Monoid a => Group a whereSource
Methods
gnegate :: a -> aSource
minus :: a -> a -> aSource
show/hide Instances
gnegate :: Group a => a -> aSource
minus :: Group a => a -> a -> aSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Group.html hunk ./dist/doc/html/monoids/Data-Monoid-Additive-Sugar.html 1 - - -Data.Monoid.Additive.Sugar
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Additive.Sugar
Documentation
module Data.Monoid.Additive
(+) :: Monoid m => m -> m -> mSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Additive-Sugar.html hunk ./dist/doc/html/monoids/Data-Monoid-Additive.html 1 - - -Data.Monoid.Additive
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Additive
Documentation
plus :: Monoid m => m -> m -> mSource
zero :: Monoid m => mSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Additive.html hunk ./dist/doc/html/monoids/Data-Monoid-Applicative.html 1 - - -Data.Monoid.Applicative
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Applicative
Documentation
module Data.Monoid.Reducer
newtype Traversal f Source
Constructors
Traversal
getTraversal :: f ()
show/hide Instances
newtype Alternate f a Source
Constructors
Alternate
getAlternate :: f a
show/hide Instances
Functor f => Functor (Alternate f)
Applicative f => Applicative (Alternate f)
Alternative f => Alternative (Alternate f)
Pointed f => Pointed (Alternate f)
Alternative f => Reducer (f a) (Alternate f a)
Eq (f a) => Eq (Alternate f a)
Ord (f a) => Ord (Alternate f a)
Read (f a) => Read (Alternate f a)
Show (f a) => Show (Alternate f a)
Alternative f => Monoid (Alternate f a)
newtype TraversalWith f n Source
Constructors
TraversalWith
getTraversalWith :: f n
show/hide Instances
Functor f => Functor (TraversalWith f)
Pointed f => Pointed (TraversalWith f)
(Applicative f, Monoid n) => Reducer (f n) (TraversalWith f n)
(Applicative f, Monoid n) => Monoid (TraversalWith f n)
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Applicative.html hunk ./dist/doc/html/monoids/Data-Monoid-Categorical.html 1 - - -Data.Monoid.Categorical
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Categorical
Synopsis
data Endo k a = Endo {
getEndo :: k a a
}
data Mon m n o where
Mon :: Monoid m => m -> Mon m a a
runMon :: Mon m m m -> m
Documentation
data Endo k a Source
The Monoid of endomorphisms over some object in an arbitrary Category -
Constructors
Endo
getEndo :: k a a
show/hide Instances
Category k => Monoid (Endo k a)
data Mon m n o whereSource
A Monoid is just a Category with one object. -
Constructors
Mon :: Monoid m => m -> Mon m a a
show/hide Instances
runMon :: Mon m m m -> mSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Categorical.html hunk ./dist/doc/html/monoids/Data-Monoid-FromString.html 1 - - -Data.Monoid.FromString
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.FromString
Documentation
data FromString m Source
Constructors
FromString
getFromString :: m
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-FromString.html hunk ./dist/doc/html/monoids/Data-Monoid-Generator-Combinators.html 1 - - -Data.Monoid.Generator.Combinators
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Generator.Combinators
Documentation
module Data.Monoid.Generator
traverse_ :: (Generator c, Applicative f) => (Elem c -> f b) -> c -> f ()Source
for_ :: (Generator c, Applicative f) => c -> (Elem c -> f b) -> f ()Source
mapM_ :: (Generator c, Monad m) => (Elem c -> m b) -> c -> m ()Source
forM_ :: (Generator c, Monad m) => c -> (Elem c -> m b) -> m ()Source
foldMap' :: (Monoid m, Generator c) => (Elem c -> m) -> c -> mSource
concatMap :: Generator c => (Elem c -> [b]) -> c -> [b]Source
and :: (Generator c, Elem c ~ Bool) => c -> BoolSource
or :: (Generator c, Elem c ~ Bool) => c -> BoolSource
any :: Generator c => (Elem c -> Bool) -> c -> BoolSource
all :: Generator c => (Elem c -> Bool) -> c -> BoolSource
sum :: (Generator c, Num (Elem c)) => c -> Elem cSource
product :: (Generator c, Num (Elem c)) => c -> Elem cSource
elem :: (Generator c, Eq (Elem c)) => Elem c -> c -> BoolSource
notElem :: (Generator c, Eq (Elem c)) => Elem c -> c -> BoolSource
filter :: (Generator c, Reducer (Elem c) m) => (Elem c -> Bool) -> c -> mSource
find :: Generator c => (Elem c -> Bool) -> c -> Maybe (Elem c)Source
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Generator-Combinators.html hunk ./dist/doc/html/monoids/Data-Monoid-Generator.html 1 - - -Data.Monoid.Generator
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Generator
Documentation
module Data.Monoid.Reducer
class Generator c whereSource
Associated Types
type Elem c :: *Source
Methods
mapReduce :: Reducer e m => (Elem c -> e) -> c -> mSource
mapTo :: Reducer e m => (Elem c -> e) -> m -> c -> mSource
mapFrom :: Reducer e m => (Elem c -> e) -> c -> m -> mSource
show/hide Instances
mapReduce :: (Generator c, Reducer e m) => (Elem c -> e) -> c -> mSource
mapTo :: (Generator c, Reducer e m) => (Elem c -> e) -> m -> c -> mSource
mapFrom :: (Generator c, Reducer e m) => (Elem c -> e) -> c -> m -> mSource
reduce :: (Generator c, Reducer (Elem c) m) => c -> mSource
newtype Keys c Source
Constructors
Keys
getKeys :: c
show/hide Instances
newtype Values c Source
Constructors
Values
getValues :: c
show/hide Instances
newtype Char8 c Source
Constructors
Char8
getChar8 :: c
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Generator.html hunk ./dist/doc/html/monoids/Data-Monoid-IntMap.html 1 - - -Data.Monoid.IntMap
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.IntMap
Documentation
module Data.Monoid.Reducer
data UnionWith m Source
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-IntMap.html hunk ./dist/doc/html/monoids/Data-Monoid-Lexical-SourcePosition.html 1 - - -Data.Monoid.Lexical.SourcePosition
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Lexical.SourcePosition
Documentation
module Data.Monoid.Reducer.Char
data SourcePosition file Source
show/hide Instances
type SourceLine = IntSource
type SourceColumn = IntSource
sourceLine :: SourcePosition f -> Maybe SourceLineSource
sourceColumn :: SourcePosition f -> Maybe SourceColumnSource
startOfFile :: f -> SourcePosition fSource
showSourcePosition :: SourcePosition String -> StringSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Lexical-SourcePosition.html hunk ./dist/doc/html/monoids/Data-Monoid-Lexical-UTF8-Decoder.html 1 - - -Data.Monoid.Lexical.UTF8.Decoder
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Lexical.UTF8.Decoder
Documentation
module Data.Monoid.Reducer.Char
data UTF8 m Source
show/hide Instances
runUTF8 :: CharReducer m => UTF8 m -> mSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Lexical-UTF8-Decoder.html hunk ./dist/doc/html/monoids/Data-Monoid-Lexical-Words.html 1 - - -Data.Monoid.Lexical.Words
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Lexical.Words
Documentation
module Data.Monoid.Reducer.Char
data Words m Source
show/hide Instances
runWords :: Words m -> [m]Source
data Lines m Source
show/hide Instances
runLines :: Lines m -> [m]Source
data Unspaced m Source
show/hide Instances
data Unlined m Source
show/hide Instances
wordsFrom :: (Generator c, Elem c ~ Char, Reducer Char m, Reducer Char n, Reducer Char o) => m -> c -> [(m, n, o)]Source
linesFrom :: (Generator c, Elem c ~ Char, Reducer Char m, Reducer Char n, Reducer Char o) => m -> c -> [(m, n, o)]Source
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Lexical-Words.html hunk ./dist/doc/html/monoids/Data-Monoid-Map.html 1 - - -Data.Monoid.Map
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Map
Documentation
module Data.Monoid.Reducer
data UnionWith k m Source
show/hide Instances
(Ord k, Monoid m) => Monoid (UnionWith k m)
(Ord k, Monoid m) => Reducer (Map k m) (UnionWith k m)
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Map.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-Cont.html 1 - - -Data.Monoid.Monad.Cont
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.Cont
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-Cont.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-Either.html 1 - - -Data.Monoid.Monad.Either
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.Either
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-Either.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-IO.html 1 - - -Data.Monoid.Monad.IO
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.IO
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-IO.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-Identity.html 1 - - -Data.Monoid.Monad.Identity
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.Identity
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-Identity.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-RWS-Lazy.html 1 - - -Data.Monoid.Monad.RWS.Lazy
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.RWS.Lazy
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-RWS-Lazy.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-RWS-Strict.html 1 - - -Data.Monoid.Monad.RWS.Strict
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.RWS.Strict
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-RWS-Strict.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-Reader.html 1 - - -Data.Monoid.Monad.Reader
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.Reader
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-Reader.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-ST-Lazy.html 1 - - -Data.Monoid.Monad.ST.Lazy
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.ST.Lazy
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-ST-Lazy.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-ST-Strict.html 1 - - -Data.Monoid.Monad.ST.Strict
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.ST.Strict
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-ST-Strict.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-STM.html 1 - - -Data.Monoid.Monad.STM
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.STM
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-STM.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-State-Lazy.html 1 - - -Data.Monoid.Monad.State.Lazy
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.State.Lazy
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-State-Lazy.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-State-Strict.html 1 - - -Data.Monoid.Monad.State.Strict
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.State.Strict
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-State-Strict.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-Writer-Lazy.html 1 - - -Data.Monoid.Monad.Writer.Lazy
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.Writer.Lazy
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-Writer-Lazy.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad-Writer-Strict.html 1 - - -Data.Monoid.Monad.Writer.Strict
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad.Writer.Strict
Documentation
module Data.Monoid.Reducer
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad-Writer-Strict.html hunk ./dist/doc/html/monoids/Data-Monoid-Monad.html 1 - - -Data.Monoid.Monad
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Monad
Documentation
module Data.Monoid.Reducer
newtype Action m Source
Constructors
Action
getAction :: m ()
show/hide Instances
Monad m => Monoid (Action m)
Monad m => Reducer (m a) (Action m)
newtype MonadSum m a Source
Constructors
MonadSum
getMonadSum :: m a
show/hide Instances
Monad m => Monad (MonadSum m)
Functor m => Functor (MonadSum m)
MonadPlus m => MonadPlus (MonadSum m)
MonadPlus m => Reducer (m a) (MonadSum m a)
Eq (m a) => Eq (MonadSum m a)
Ord (m a) => Ord (MonadSum m a)
Read (m a) => Read (MonadSum m a)
Show (m a) => Show (MonadSum m a)
MonadPlus m => Monoid (MonadSum m a)
newtype ActionWith m n Source
Constructors
ActionWith
getActionWith :: m n
show/hide Instances
(Monad m, Monoid n) => Reducer (m n) (ActionWith m n)
(Monad m, Monoid n) => Monoid (ActionWith m n)
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Monad.html hunk ./dist/doc/html/monoids/Data-Monoid-Multiplicative-Sugar.html 1 - - -Data.Monoid.Multiplicative.Sugar
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Multiplicative.Sugar
Documentation
module Data.Monoid.Additive.Sugar
module Data.Monoid.Multiplicative
(*) :: MultiplicativeMonoid r => r -> r -> rSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Multiplicative-Sugar.html hunk ./dist/doc/html/monoids/Data-Monoid-Multiplicative-Transformer.html 1 - - -Data.Monoid.Multiplicative.Transformer
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Multiplicative.Transformer
Documentation
module Data.Monoid.Multiplicative
data Log m Source
Constructors
Log
getLog :: m
show/hide Instances
data Exp m Source
Constructors
Exp
getExp :: m
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Multiplicative-Transformer.html hunk ./dist/doc/html/monoids/Data-Monoid-Multiplicative-Transformers.html 1 - - -Data.Monoid.Multiplicative.Transformers
 monoids-0.1.1: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Multiplicative.Transformers
Documentation
module Data.Monoid.Multiplicative
data Log m Source
Constructors
Log
getLog :: m
show/hide Instances
data Exp m Source
Constructors
Exp
getExp :: m
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Multiplicative-Transformers.html hunk ./dist/doc/html/monoids/Data-Monoid-Multiplicative.html 1 - - -Data.Monoid.Multiplicative
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Multiplicative
Documentation
module Data.Monoid.Additive
class MultiplicativeMonoid m whereSource
Methods
one :: mSource
times :: m -> m -> mSource
show/hide Instances
one :: MultiplicativeMonoid m => mSource
times :: MultiplicativeMonoid m => m -> m -> mSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Multiplicative.html hunk ./dist/doc/html/monoids/Data-Monoid-Ord.html 1 - - -Data.Monoid.Ord
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Ord
Contents
Max -
Min -
MaxPriority: Max semigroup w/ added bottom -
MinPriority: Min semigroup w/ added top -
Synopsis
module Data.Monoid.Reducer
newtype Max a = Max {
getMax :: a
}
newtype Min a = Min {
getMin :: a
}
newtype MaxPriority a = MaxPriority {
getMaxPriority :: Maybe a
}
newtype MinPriority a = MinPriority {
getMinPriority :: Maybe a
}
Documentation
module Data.Monoid.Reducer
Max -
newtype Max a Source
The Monoid (max,minBound) -
Constructors
Max
getMax :: a
show/hide Instances
Functor Max
Pointed Max
Copointed Max
(Ord a, Bounded a) => Reducer a (Max a)
Bounded a => Bounded (Max a)
Eq a => Eq (Max a)
Ord a => Ord (Max a)
Read a => Read (Max a)
Show a => Show (Max a)
(Ord a, Bounded a) => Monoid (Max a)
Min -
newtype Min a Source
The Monoid given by (min,maxBound) -
Constructors
Min
getMin :: a
show/hide Instances
Functor Min
Pointed Min
Copointed Min
(Ord a, Bounded a) => Reducer a (Min a)
Bounded a => Bounded (Min a)
Eq a => Eq (Min a)
Ord a => Ord (Min a)
Read a => Read (Min a)
Show a => Show (Min a)
(Ord a, Bounded a) => Monoid (Min a)
MaxPriority: Max semigroup w/ added bottom -
newtype MaxPriority a Source
The Monoid (max,Nothing) over Maybe a where Nothing is the bottom element -
Constructors
MaxPriority
getMaxPriority :: Maybe a
show/hide Instances
MinPriority: Min semigroup w/ added top -
newtype MinPriority a Source
The Monoid (min,Nothing) over Maybe a where Nothing is the top element -
Constructors
MinPriority
getMinPriority :: Maybe a
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Ord.html hunk ./dist/doc/html/monoids/Data-Monoid-Reducer-Char.html 1 - - -Data.Monoid.Reducer.Char
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Reducer.Char
Documentation
module Data.Monoid.Reducer
class Reducer Char m => CharReducer m whereSource
Methods
fromChar :: Char -> mSource
invalidChar :: [Word8] -> mSource
show/hide Instances
invalidChar :: CharReducer m => [Word8] -> mSource
fromChar :: CharReducer m => Char -> mSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Reducer-Char.html hunk ./dist/doc/html/monoids/Data-Monoid-Reducer-Sugar.html 1 - - -Data.Monoid.Reducer.Sugar
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Reducer.Sugar
Documentation
module Data.Monoid.Reducer
fromInteger :: Reducer Integer m => Integer -> mSource
fromString :: Reducer Char m => String -> mSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Reducer-Sugar.html hunk ./dist/doc/html/monoids/Data-Monoid-Reducer-With.html 1 - - -Data.Monoid.Reducer.With
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Reducer.With
Documentation
module Data.Monoid.Reducer
newtype WithReducer c m Source
Constructors
WithReducer
runWithReducer :: (m, c)
show/hide Instances
Reducer c m => Measured m (WithReducer c m)
Reducer c m => Reducer (WithReducer c m) m
withoutReducer :: (c `WithReducer` m) -> cSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Reducer-With.html hunk ./dist/doc/html/monoids/Data-Monoid-Reducer.html 1 - - -Data.Monoid.Reducer
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Reducer
Documentation
class Monoid m => Reducer c m whereSource
Methods
unit :: c -> mSource
snoc :: m -> c -> mSource
cons :: c -> m -> mSource
show/hide Instances
Reducer Bool All
Reducer Bool All
Reducer Bool Any
Reducer Bool Any
Reducer Int IntSet
Reducer Int IntSet
Reducer c ()
Reducer Char (SourcePosition file)
Reducer Char (SourcePosition file)
Reducer Char m => Reducer Char (Unlined m)
Reducer Char m => Reducer Char (Unlined m)
Reducer Char m => Reducer Char (Unspaced m)
Reducer Char m => Reducer Char (Unspaced m)
Reducer Char m => Reducer Char (Lines m)
Reducer Char m => Reducer Char (Lines m)
Reducer Char m => Reducer Char (Words m)
Reducer Char m => Reducer Char (Words m)
Reducer Char m => Reducer Char (FromString m)
Reducer Char m => Reducer Char (FromString m)
Num a => Reducer Integer (FromNum a)
Num a => Reducer Integer (FromNum a)
CharReducer m => Reducer Word8 (UTF8 m)
CharReducer m => Reducer Word8 (UTF8 m)
Ord a => Reducer a (Set a)
Reducer a (Seq a)
Reducer a (Last a)
Reducer a (First a)
Num a => Reducer a (Product a)
Num a => Reducer a (Sum a)
Monoid a => Reducer a (Dual a)
Reducer c ([] c)
Reducer c (Unit c)
(Ord a, Bounded a) => Reducer a (Min a)
(Ord a, Bounded a) => Reducer a (Max a)
Monoid m => Reducer m (STM m)
Monoid m => Reducer m (IO m)
Monoid m => Reducer m (Identity m)
Ord a => Reducer a (Priority a)
(Bounded a, Ord a) => Reducer a (Order a)
Measured v a => Reducer a (FingerTree v a)
(Reducer c m, Reducer c n) => Reducer c ((,) m n)
(Monoid w, Monoid m) => Reducer m (Writer w m)
(Monoid w, Monoid m) => Reducer m (Writer w m)
Monoid m => Reducer m (ST s m)
Monoid m => Reducer m (ST s m)
Monoid m => Reducer m (State s m)
Monoid m => Reducer m (State s m)
Monoid m => Reducer m (Reader e m)
Monoid m => Reducer m (Either e m)
Monoid m => Reducer m (Cont r m)
(Reducer c m, Reducer c n, Reducer c o) => Reducer c ((,,) m n o)
(Monad m, Monoid w, Monoid n) => Reducer n (WriterT w m n)
(Monad m, Monoid w, Monoid n) => Reducer n (WriterT w m n)
(Monad m, Monoid n) => Reducer n (StateT s m n)
(Monad m, Monoid n) => Reducer n (StateT s m n)
(Monad m, Monoid n) => Reducer n (ReaderT e m n)
(Monad m, Monoid n) => Reducer n (EitherT e m n)
(Monad m, Monoid n) => Reducer n (ContT r m n)
(Reducer c m, Reducer c n, Reducer c o, Reducer c p) => Reducer c ((,,,) m n o p)
(Monoid w, Monoid m) => Reducer m (RWS r w s m)
(Monoid w, Monoid m) => Reducer m (RWS r w s m)
(Monad m, Monoid w, Monoid n) => Reducer n (RWST r w s m n)
(Monad m, Monoid w, Monoid n) => Reducer n (RWST r w s m n)
Monad m => Reducer (m a) (Action m)
Applicative f => Reducer (f a) (Traversal f)
Reducer (Maybe a) (Last a)
Reducer (Maybe a) (Last a)
Reducer (Maybe a) (First a)
Reducer (Maybe a) (First a)
Ord a => Reducer (Maybe a) (MinPriority a)
Ord a => Reducer (Maybe a) (MinPriority a)
Ord a => Reducer (Maybe a) (MaxPriority a)
Ord a => Reducer (Maybe a) (MaxPriority a)
Monoid m => Reducer (STM m) (IO m)
Monoid m => Reducer (STM m) (IO m)
Monoid m => Reducer (IntMap m) (UnionWith m)
Monoid m => Reducer (IntMap m) (UnionWith m)
Ord a => Reducer (MinPriority a) (Priority a)
Ord a => Reducer (MinPriority a) (Priority a)
Ord a => Reducer (MaxPriority a) (Priority a)
Ord a => Reducer (MaxPriority a) (Priority a)
(Monad m, Monoid n) => Reducer (m n) (ActionWith m n)
MonadPlus m => Reducer (m a) (MonadSum m a)
(Applicative f, Monoid n) => Reducer (f n) (TraversalWith f n)
Alternative f => Reducer (f a) (Alternate f a)
(Monad m, Monoid w, Monoid n) => Reducer (m n) (WriterT w m n)
(Monad m, Monoid w, Monoid n) => Reducer (m n) (WriterT w m n)
(Monad m, Monoid n) => Reducer (m n) (StateT s m n)
(Monad m, Monoid n) => Reducer (m n) (StateT s m n)
(Monad m, Monoid n) => Reducer (m n) (ReaderT e m n)
(Monad m, Monoid n) => Reducer (m n) (EitherT e m n)
(Monad m, Monoid n) => Reducer (m n) (ContT r m n)
(Monad m, Monoid w, Monoid n) => Reducer (m n) (RWST r w s m n)
(Monad m, Monoid w, Monoid n) => Reducer (m n) (RWST r w s m n)
Reducer c m => Reducer (WithReducer c m) m
Reducer (a -> a) (Endo a)
Reducer (a -> a) (Endo a)
Reducer ((,) Int v) (IntMap v)
Reducer ((,) Int v) (IntMap v)
Monoid m => Reducer (ST RealWorld m) (IO m)
Monoid m => Reducer (ST RealWorld m) (IO m)
Ord k => Reducer ((,) k v) (Map k v)
Ord k => Reducer ((,) k v) (Map k v)
(Ord k, Monoid m) => Reducer (Map k m) (UnionWith k m)
(Ord k, Monoid m) => Reducer (Map k m) (UnionWith k m)
unit :: Reducer c m => c -> mSource
snoc :: Reducer c m => m -> c -> mSource
cons :: Reducer c m => c -> m -> mSource
foldMapReduce :: (Foldable f, Reducer e m) => (a -> e) -> f a -> mSource
foldReduce :: (Foldable f, Reducer e m) => f e -> mSource
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Reducer.html hunk ./dist/doc/html/monoids/Data-Monoid-Self.html 1 - - -Data.Monoid.Self
 monoids-0.1.1: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Self
Documentation
module Data.Monoid.Reducer
newtype Self m Source
Constructors
Self
getSelf :: m
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Self.html hunk ./dist/doc/html/monoids/Data-Monoid-Unit.html 1 - - -Data.Monoid.Unit
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Monoid.Unit
Documentation
module Data.Monoid.Reducer
newtype Unit c Source
Constructors
Unit
getUnit :: ()
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Monoid-Unit.html hunk ./dist/doc/html/monoids/Data-Ring-Bool.html 1 - - -Data.Ring.Bool
 monoids-0.1.1: Lots of MonoidsSource codeContentsIndex
Data.Ring.Bool
Documentation
module Data.Ring
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Ring-Bool.html hunk ./dist/doc/html/monoids/Data-Ring-FromNum.html 1 - - -Data.Ring.FromNum
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Ring.FromNum
Documentation
module Data.Ring
newtype FromNum a Source
Constructors
FromNum
getFromNum :: a
show/hide Instances
Num a => Reducer Integer (FromNum a)
Eq a => Eq (FromNum a)
Num a => Num (FromNum a)
Show a => Show (FromNum a)
Num a => Monoid (FromNum a)
Num a => MultiplicativeMonoid (FromNum a)
Num a => Seminearring (FromNum a)
Num a => Group (FromNum a)
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Ring-FromNum.html hunk ./dist/doc/html/monoids/Data-Ring-Number.html 1 - - -Data.Ring.Number
 monoids-0.1.1: Lots of MonoidsSource codeContentsIndex
Data.Ring.Number
Documentation
module Data.Ring
newtype Number a Source
Constructors
Number
getNumber :: a
show/hide Instances
Num a => Reducer Integer (Number a)
Eq a => Eq (Number a)
Num a => Num (Number a)
Show a => Show (Number a)
Num a => Monoid (Number a)
Num a => MultiplicativeMonoid (Number a)
Num a => Seminearring (Number a)
Num a => Group (Number a)
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Ring-Number.html hunk ./dist/doc/html/monoids/Data-Ring-Semi-Near.html 1 - - -Data.Ring.Semi.Near
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Ring.Semi.Near
Documentation
module Data.Monoid.Multiplicative
class (MultiplicativeMonoid m, Monoid m) => Seminearring m Source
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Ring-Semi-Near.html hunk ./dist/doc/html/monoids/Data-Ring-Semi-Ord.html 1 - - -Data.Ring.Semi.Ord
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Ring.Semi.Ord
Documentation
module Data.Ring.Semi
newtype Order a Source
Constructors
Order
getOrder :: a
show/hide Instances
Functor Order
Pointed Order
Copointed Order
(Bounded a, Ord a) => Reducer a (Order a)
Bounded a => Bounded (Order a)
Eq a => Eq (Order a)
Ord a => Ord (Order a)
Read a => Read (Order a)
Show a => Show (Order a)
Arbitrary a => Arbitrary (Order a)
(Bounded a, Ord a) => Monoid (Order a)
(Bounded a, Ord a) => MultiplicativeMonoid (Order a)
(Bounded a, Ord a) => Seminearring (Order a)
(Bounded a, Ord a) => Semiring (Order a)
data Priority a Source
Constructors
MinBound
Priority a
MaxBound
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Ring-Semi-Ord.html hunk ./dist/doc/html/monoids/Data-Ring-Semi.html 1 - - -Data.Ring.Semi
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Ring.Semi
Documentation
module Data.Ring.Semi.Near
class Seminearring a => Semiring a Source
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Ring-Semi.html hunk ./dist/doc/html/monoids/Data-Ring-Sugar.html 1 - - -Data.Ring.Sugar
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Ring.Sugar
Documentation
module Data.Monoid.Multiplicative.Sugar
module Data.Ring.Semi.Near
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Ring-Sugar.html hunk ./dist/doc/html/monoids/Data-Ring.html 1 - - -Data.Ring
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Ring
Documentation
module Data.Group
module Data.Ring.Semi
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Ring.html hunk ./dist/doc/html/monoids/Data-Seminearring-Sugar.html 1 - - -Data.Seminearring.Sugar
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Seminearring.Sugar
Documentation
module Data.Monoid.Multiplicative.Sugar
module Data.Seminearring
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Seminearring-Sugar.html hunk ./dist/doc/html/monoids/Data-Seminearring.html 1 - - -Data.Seminearring
 monoids-0.1.2: Lots of MonoidsSource codeContentsIndex
Data.Seminearring
Documentation
module Data.Monoid.Multiplicative
class (MultiplicativeMonoid m, Monoid m) => Seminearring m Source
show/hide Instances
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/Data-Seminearring.html hunk ./dist/doc/html/monoids/doc-index.html 1 - - -monoids-0.1.2: Lots of Monoids (Index)
 monoids-0.1.2: Lots of MonoidsContentsIndex
Search:
*
*>
+
-
<=<
<|>
=<<
>=>
>>
>>=
AbsoluteSeek
Action
1 (Type/Class)
2 (Data Constructor)
ActionWith
1 (Type/Class)
2 (Data Constructor)
All
1 (Data Constructor)
2 (Type/Class)
all
Alternate
1 (Type/Class)
2 (Data Constructor)
Alternative
always
alwaysSucceeds
and
Any
1 (Data Constructor)
2 (Type/Class)
any
ap
appendFile
AppendMode
appEndo
Applicative
ask
asks
atomically
BlockBuffering
BufferMode
callCC
catchSTM
censor
Char8
1 (Type/Class)
2 (Data Constructor)
CharReducer
check
concatMap
cons
Cont
1 (Data Constructor)
2 (Type/Class)
ContT
1 (Data Constructor)
2 (Type/Class)
Dual
1 (Data Constructor)
2 (Type/Class)
dupTChan
Either
EitherT
1 (Type/Class)
2 (Data Constructor)
Elem
elem
empty
Endo
1 (Data Constructor)
2 (Type/Class)
3 (Type/Class)
4 (Data Constructor)
evalRWS
1 (Function)
2 (Function)
evalRWST
1 (Function)
2 (Function)
evalState
1 (Function)
2 (Function)
evalStateT
1 (Function)
2 (Function)
execRWS
1 (Function)
2 (Function)
execRWST
1 (Function)
2 (Function)
execState
1 (Function)
2 (Function)
execStateT
1 (Function)
2 (Function)
execWriter
1 (Function)
2 (Function)
execWriterT
1 (Function)
2 (Function)
Exp
1 (Type/Class)
2 (Data Constructor)
fail
FilePath
filter
filterM
find
First
1 (Data Constructor)
2 (Type/Class)
fix
fixIO
fixST
1 (Function)
2 (Function)
fmap
foldM
foldMap'
foldMapReduce
foldM_
foldReduce
forever
forM
forM_
1 (Function)
2 (Function)
for_
fromChar
fromInteger
FromNum
1 (Type/Class)
2 (Data Constructor)
FromString
1 (Type/Class)
2 (Data Constructor)
fromString
Functor
Generator
get
getAction
getActionWith
getAll
getAlternate
getAny
getChar
getChar8
getContents
getDual
getEndo
getExp
getFirst
getFromNum
getFromString
getKeys
getLast
getLine
getLog
getMax
getMaxPriority
getMin
getMinPriority
getMonadSum
getOrder
getProduct
gets
getSum
getTraversal
getTraversalWith
getUnionWith
1 (Function)
2 (Function)
getUnit
getValues
gnegate
Group
guard
Handle
HandlePosn
hClose
hFileSize
hFlush
hGetBuf
hGetBuffering
hGetBufNonBlocking
hGetChar
hGetContents
hGetEcho
hGetLine
hGetPosn
hIsClosed
hIsEOF
hIsOpen
hIsReadable
hIsSeekable
hIsTerminalDevice
hIsWritable
hLookAhead
hPrint
hPutBuf
hPutBufNonBlocking
hPutChar
hPutStr
hPutStrLn
hReady
hSeek
hSetBinaryMode
hSetBuffering
hSetEcho
hSetFileSize
hSetPosn
hShow
hTell
hWaitForInput
Identity
1 (Data Constructor)
2 (Type/Class)
interact
invalidChar
IO
IOMode
isEmptyTChan
isEmptyTMVar
isEOF
IsString
join
Keys
1 (Type/Class)
2 (Data Constructor)
Last
1 (Data Constructor)
2 (Type/Class)
lazyToStrictST
Left
lift
liftA2
liftIO
liftM
liftM2
liftM3
liftM4
liftM5
LineBuffering
Lines
linesFrom
listen
listens
local
Log
1 (Type/Class)
2 (Data Constructor)
mapAndUnzipM
mapCont
mapContT
mapFrom
mapM
mapM_
1 (Function)
2 (Function)
mappend
mapReader
mapReaderT
mapReduce
mapRWS
1 (Function)
2 (Function)
mapRWST
1 (Function)
2 (Function)
mapState
1 (Function)
2 (Function)
mapStateT
1 (Function)
2 (Function)
mapTo
mapWriter
1 (Function)
2 (Function)
mapWriterT
1 (Function)
2 (Function)
Max
1 (Type/Class)
2 (Data Constructor)
MaxBound
MaxPriority
1 (Type/Class)
2 (Data Constructor)
mconcat
mempty
mfix
Min
1 (Type/Class)
2 (Data Constructor)
MinBound
MinPriority
1 (Type/Class)
2 (Data Constructor)
minus
modify
Mon
1 (Type/Class)
2 (Data Constructor)
Monad
MonadCont
MonadFix
MonadIO
MonadPlus
MonadReader
MonadRWS
MonadState
MonadSum
1 (Type/Class)
2 (Data Constructor)
MonadTrans
MonadWriter
Monoid
mplus
msum
MultiplicativeMonoid
mzero
negate
newEmptyTMVar
newEmptyTMVarIO
newTChan
newTChanIO
newTMVar
newTMVarIO
newTVar
newTVarIO
NoBuffering
notElem
one
openBinaryFile
openBinaryTempFile
openFile
openTempFile
or
Order
1 (Type/Class)
2 (Data Constructor)
orElse
pass
plus
print
Priority
1 (Type/Class)
2 (Data Constructor)
Product
1 (Data Constructor)
2 (Type/Class)
product
pure
put
putChar
putStr
putStrLn
putTMVar
Reader
1 (Data Constructor)
2 (Type/Class)
ReaderT
1 (Data Constructor)
2 (Type/Class)
readFile
readIO
readLn
ReadMode
readTChan
readTMVar
readTVar
ReadWriteMode
RealWorld
reduce
Reducer
registerDelay
RelativeSeek
replicateM
replicateM_
retry
return
Right
runCont
runContT
runEitherT
runIdentity
runLines
runMon
runReader
runReaderT
runRWS
1 (Function)
2 (Function)
runRWST
1 (Function)
2 (Function)
runST
1 (Function)
2 (Function)
runState
1 (Function)
2 (Function)
runStateT
1 (Function)
2 (Function)
runUnlined
runUnspaced
runUTF8
runWithReducer
runWords
runWriter
1 (Function)
2 (Function)
runWriterT
1 (Function)
2 (Function)
RWS
1 (Data Constructor)
2 (Type/Class)
3 (Data Constructor)
4 (Type/Class)
RWST
1 (Data Constructor)
2 (Type/Class)
3 (Data Constructor)
4 (Type/Class)
SeekFromEnd
SeekMode
Seminearring
Semiring
sequence
sequence_
showSourcePosition
snoc
SourceColumn
sourceColumn
SourceLine
sourceLine
SourcePosition
ST
1 (Type/Class)
2 (Type/Class)
startOfFile
State
1 (Data Constructor)
2 (Type/Class)
3 (Data Constructor)
4 (Type/Class)
StateT
1 (Data Constructor)
2 (Type/Class)
3 (Data Constructor)
4 (Type/Class)
stderr
stdin
stdout
STM
strictToLazyST
stToIO
1 (Function)
2 (Function)
Sum
1 (Data Constructor)
2 (Type/Class)
sum
swapTMVar
takeTMVar
TArray
TChan
tell
times
TMVar
Traversal
1 (Type/Class)
2 (Data Constructor)
TraversalWith
1 (Type/Class)
2 (Data Constructor)
traverse_
tryPutTMVar
tryTakeTMVar
TVar
unGetTChan
UnionWith
1 (Type/Class)
2 (Type/Class)
Unit
1 (Type/Class)
2 (Data Constructor)
unit
unless
Unlined
unsafeInterleaveST
1 (Function)
2 (Function)
unsafeIOToST
1 (Function)
2 (Function)
unsafeSTToIO
Unspaced
UTF8
Values
1 (Type/Class)
2 (Data Constructor)
when
withBinaryFile
withCont
withContT
withFile
withoutReducer
withReader
withReaderT
WithReducer
1 (Type/Class)
2 (Data Constructor)
withRWS
1 (Function)
2 (Function)
withRWST
1 (Function)
2 (Function)
withState
1 (Function)
2 (Function)
withStateT
1 (Function)
2 (Function)
Words
wordsFrom
writeFile
WriteMode
Writer
1 (Data Constructor)
2 (Type/Class)
3 (Data Constructor)
4 (Type/Class)
WriterT
1 (Data Constructor)
2 (Type/Class)
3 (Data Constructor)
4 (Type/Class)
writeTChan
writeTVar
zero
zipWithM
zipWithM_
rmfile ./dist/doc/html/monoids/doc-index.html hunk ./dist/doc/html/monoids/haddock-util.js 1 -// Haddock JavaScript utilities -function toggle(button,id) -{ - var n = document.getElementById(id).style; - if (n.display == "none") - { - button.src = "minus.gif"; - n.display = "block"; - } - else - { - button.src = "plus.gif"; - n.display = "none"; - } -} - - -var max_results = 75; // 50 is not enough to search for map in the base libraries -var shown_range = null; -var last_search = null; - -function quick_search() -{ - perform_search(false); -} - -function full_search() -{ - perform_search(true); -} - - -function perform_search(full) -{ - var text = document.getElementById("searchbox").value.toLowerCase(); - if (text == last_search && !full) return; - last_search = text; - - var table = document.getElementById("indexlist"); - var status = document.getElementById("searchmsg"); - var children = table.firstChild.childNodes; - - // first figure out the first node with the prefix - var first = bisect(-1); - var last = (first == -1 ? -1 : bisect(1)); - - if (first == -1) - { - table.className = ""; - status.innerHTML = "No results found, displaying all"; - } - else if (first == 0 && last == children.length - 1) - { - table.className = ""; - status.innerHTML = ""; - } - else if (last - first >= max_results && !full) - { - table.className = ""; - status.innerHTML = "More than " + max_results + ", press Search to display"; - } - else - { - // decide what you need to clear/show - if (shown_range) - setclass(shown_range[0], shown_range[1], "indexrow"); - setclass(first, last, "indexshow"); - shown_range = [first, last]; - table.className = "indexsearch"; - status.innerHTML = ""; - } - - - function setclass(first, last, status) - { - for (var i = first; i <= last; i++) - { - children[i].className = status; - } - } - - - // do a binary search, treating 0 as ... - // return either -1 (no 0's found) or location of most far match - function bisect(dir) - { - var first = 0, finish = children.length - 1; - var mid, success = false; - - while (finish - first > 3) - { - mid = Math.floor((finish + first) / 2); - - var i = checkitem(mid); - if (i == 0) i = dir; - if (i == -1) - finish = mid; - else - first = mid; - } - var a = (dir == 1 ? first : finish); - var b = (dir == 1 ? finish : first); - for (var i = b; i != a - dir; i -= dir) - { - if (checkitem(i) == 0) return i; - } - return -1; - } - - - // from an index, decide what the result is - // 0 = match, -1 is lower, 1 is higher - function checkitem(i) - { - var s = getitem(i).toLowerCase().substr(0, text.length); - if (s == text) return 0; - else return (s > text ? -1 : 1); - } - - - // from an index, get its string - // this abstracts over alternates - function getitem(i) - { - for ( ; i >= 0; i--) - { - var s = children[i].firstChild.firstChild.data; - if (s.indexOf(' ') == -1) - return s; - } - return ""; // should never be reached - } -} rmfile ./dist/doc/html/monoids/haddock-util.js hunk ./dist/doc/html/monoids/haddock.css 1 -/* -------- Global things --------- */ - -BODY { - background-color: #ffffff; - color: #000000; - font-family: sans-serif; - } - -A:link { color: #0000e0; text-decoration: none } -A:visited { color: #0000a0; text-decoration: none } -A:hover { background-color: #e0e0ff; text-decoration: none } - -TABLE.vanilla { - width: 100%; - border-width: 0px; - /* I can't seem to specify cellspacing or cellpadding properly using CSS... */ -} - -TABLE.vanilla2 { - border-width: 0px; -} - -/* font is a little too small in MSIE */ -TT { font-size: 100%; } -PRE { font-size: 100%; } - -LI P { margin: 0pt } - -TD { - border-width: 0px; -} - -TABLE.narrow { - border-width: 0px; -} - -TD.s8 { height: 8px; } -TD.s15 { height: 15px; } - -SPAN.keyword { text-decoration: underline; } - -/* Resize the buttom image to match the text size */ -IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em } - -/* --------- Contents page ---------- */ - -DIV.node { - padding-left: 3em; -} - -DIV.cnode { - padding-left: 1.75em; -} - -SPAN.pkg { - position: absolute; - left: 50em; -} - -/* --------- Documentation elements ---------- */ - -TD.children { - padding-left: 25px; - } - -TD.synopsis { - padding: 2px; - background-color: #f0f0f0; - font-family: monospace - } - -TD.decl { - padding: 2px; - background-color: #f0f0f0; - font-family: monospace; - vertical-align: top; - } - -TD.topdecl { - padding: 2px; - background-color: #f0f0f0; - font-family: monospace; - vertical-align: top; -} - -TABLE.declbar { - border-spacing: 0px; - } - -TD.declname { - width: 100%; - } - -TD.declbut { - padding-left: 5px; - padding-right: 5px; - border-left-width: 1px; - border-left-color: #000099; - border-left-style: solid; - white-space: nowrap; - font-size: small; - } - -/* - arg is just like decl, except that wrapping is not allowed. It is - used for function and constructor arguments which have a text box - to the right, where if wrapping is allowed the text box squashes up - the declaration by wrapping it. -*/ -TD.arg { - padding: 2px; - background-color: #f0f0f0; - font-family: monospace; - vertical-align: top; - white-space: nowrap; - } - -TD.recfield { padding-left: 20px } - -TD.doc { - padding-top: 2px; - padding-left: 10px; - } - -TD.ndoc { - padding: 2px; - } - -TD.rdoc { - padding: 2px; - padding-left: 10px; - width: 100%; - } - -TD.body { - padding-left: 10px - } - -TD.pkg { - width: 100%; - padding-left: 10px -} - -TABLE.indexsearch TR.indexrow { - display: none; -} -TABLE.indexsearch TR.indexshow { - display: table-row; -} - -TD.indexentry { - vertical-align: top; - padding-right: 10px - } - -TD.indexannot { - vertical-align: top; - padding-left: 20px; - white-space: nowrap - } - -TD.indexlinks { - width: 100% - } - -/* ------- Section Headings ------- */ - -TD.section1 { - padding-top: 15px; - font-weight: bold; - font-size: 150% - } - -TD.section2 { - padding-top: 10px; - font-weight: bold; - font-size: 130% - } - -TD.section3 { - padding-top: 5px; - font-weight: bold; - font-size: 110% - } - -TD.section4 { - font-weight: bold; - font-size: 100% - } - -/* -------------- The title bar at the top of the page */ - -TD.infohead { - color: #ffffff; - font-weight: bold; - padding-right: 10px; - text-align: left; -} - -TD.infoval { - color: #ffffff; - padding-right: 10px; - text-align: left; -} - -TD.topbar { - background-color: #000099; - padding: 5px; -} - -TD.title { - color: #ffffff; - padding-left: 10px; - width: 100% - } - -TD.topbut { - padding-left: 5px; - padding-right: 5px; - border-left-width: 1px; - border-left-color: #ffffff; - border-left-style: solid; - white-space: nowrap; - } - -TD.topbut A:link { - color: #ffffff - } - -TD.topbut A:visited { - color: #ffff00 - } - -TD.topbut A:hover { - background-color: #6060ff; - } - -TD.topbut:hover { - background-color: #6060ff - } - -TD.modulebar { - background-color: #0077dd; - padding: 5px; - border-top-width: 1px; - border-top-color: #ffffff; - border-top-style: solid; - } - -/* --------- The page footer --------- */ - -TD.botbar { - background-color: #000099; - color: #ffffff; - padding: 5px - } -TD.botbar A:link { - color: #ffffff; - text-decoration: underline - } -TD.botbar A:visited { - color: #ffff00 - } -TD.botbar A:hover { - background-color: #6060ff - } - rmfile ./dist/doc/html/monoids/haddock.css binary ./dist/doc/html/monoids/haskell_icon.gif oldhex *47494638376110001000f70f00000000800000008000808000000080800080008080c0c0c08080 *80ff000000ff00ffff000000ffff00ff00ffffffffff0000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *0021f90401000000002c000000001000100007086c0001007840b0a0418202073e38b0b021c387 *07143e2440c0a143040e091cd0787021c686151f84347800e343901d4b12646870e44a930d0952 *3ca832a6cc990555b2bc2992e4c79d3847ea2c88b3a7c89a2c8b8aa43874e941a60810003840b5 *aa55aa511346ddca75abc080003b newhex * rmfile ./dist/doc/html/monoids/haskell_icon.gif hunk ./dist/doc/html/monoids/index.html 1 - - -monoids-0.1.2: Lots of Monoids
 monoids-0.1.2: Lots of MonoidsContentsIndex
monoids-0.1.2: Lots of Monoids
Lots of Monoids -
Modules
show/hideData
show/hideData.Group
Data.Group.Sugar
show/hideMonoid
show/hideData.Monoid.Additive
Data.Monoid.Additive.Sugar
Data.Monoid.Applicative
Data.Monoid.Categorical
Data.Monoid.FromString
show/hideData.Monoid.Generator
Data.Monoid.Generator.Combinators
Data.Monoid.IntMap
show/hideLexical
Data.Monoid.Lexical.SourcePosition
show/hideUTF8
Data.Monoid.Lexical.UTF8.Decoder
Data.Monoid.Lexical.Words
Data.Monoid.Map
show/hideData.Monoid.Monad
Data.Monoid.Monad.Cont
Data.Monoid.Monad.Either
Data.Monoid.Monad.IO
Data.Monoid.Monad.Identity
show/hideRWS
Data.Monoid.Monad.RWS.Lazy
Data.Monoid.Monad.RWS.Strict
Data.Monoid.Monad.Reader
show/hideST
Data.Monoid.Monad.ST.Lazy
Data.Monoid.Monad.ST.Strict
Data.Monoid.Monad.STM
show/hideState
Data.Monoid.Monad.State.Lazy
Data.Monoid.Monad.State.Strict
show/hideWriter
Data.Monoid.Monad.Writer.Lazy
Data.Monoid.Monad.Writer.Strict
show/hideData.Monoid.Multiplicative
Data.Monoid.Multiplicative.Sugar
Data.Monoid.Multiplicative.Transformer
Data.Monoid.Ord
show/hideData.Monoid.Reducer
Data.Monoid.Reducer.Char
Data.Monoid.Reducer.Sugar
Data.Monoid.Reducer.With
Data.Monoid.Unit
show/hideData.Ring
Data.Ring.FromNum
show/hideData.Ring.Semi
Data.Ring.Semi.Near
Data.Ring.Semi.Ord
Data.Ring.Sugar
Produced by Haddock version 2.3.0
rmfile ./dist/doc/html/monoids/index.html binary ./dist/doc/html/monoids/minus.gif oldhex *47494638396109000900910000fefefe8282820202020000002c00000000090009000002118c8f *a00bc6eb5e0b40583b6596f1a11f14003b newhex * rmfile ./dist/doc/html/monoids/minus.gif binary ./dist/doc/html/monoids/monoids.haddock oldhex *0d0cface0004000000000000948e00000000000065a68d00000000000000000000000000000000 *000000000000000100000000000000010000000000000000000000000000000100000000000000 *020000000000000000000000000000000100000000000000030000000000000000000000000000 *000100000000000000040000000000000000000000000000000100000000000000050000000000 *000000000000000000000100000000000000060000000000000000000000000000000200000000 *000000070000000000000000000000000000000200000000000000080000000000000000000000 *0000000002000000000000000900000000000000000000000000000003000000000000000a0000 *0000000000000000000000000003000000000000000b0000000000000000000000000000000300 *0000000000000c00000000000000000000000000000003000000000000000d0000000000000000 *0000000000000004000000000000000e0000000000000000000000000000000400000000000000 *0f0000000000000000000000000000000400000000000000100000000000000000000000000000 *000500000000000000110000000000000000000000000000000500000000000000120000000000 *000000000000000000000500000000000000130000000000000000000000000000000500000000 *000000140000000000000000000000000000000500000000000000150000000000000000000000 *000000000500000000000000160000000000000000000000000000000500000000000000170000 *000000000000000000000000000500000000000000180000000000000000000000000000000500 *0000000000001900000000000000000000000000000005000000000000001a0000000000000000 *0000000000000005000000000000001b0000000000000000000000000000000500000000000000 *1c00000000000000000000000000000006000000000000001d0000000000000000000000000000 *0006000000000000001e00000000000000000000000000000006000000000000001f0000000000 *000000000000000000000600000000000000200000000000000000000000000000000600000000 *000000210000000000000000000000000000000600000000000000220000000000000000000000 *000000000600000000000000230000000000000000000000000000000600000000000000240000 *000000000000000000000000000600000000000000250000000000000000000000000000000700 *000000000000260000000000000000000000000000000700000000000000270000000000000000 *000000000000000800000000000000280000000000000000000000000000000800000000000000 *2900000000000000000000000000000009000000000000002a0000000000000000000000000000 *0009000000000000002b00000000000000000000000000000009000000000000002c0000000000 *0000000000000000000009000000000000002d0000000000000000000000000000000900000000 *0000002e00000000000000000000000000000009000000000000002f0000000000000000000000 *000000000900000000000000300000000000000000000000000000000a00000000000000310000 *000000000000000000000000000a00000000000000320000000000000000000000000000000b00 *000000000000330000000000000000000000000000000b00000000000000340000000000000000 *000000000000000b00000000000000350000000000000000000000000000000b00000000000000 *360000000000000000000000000000000b00000000000000370000000000000000000000000000 *000b00000000000000380000000000000000000000000000000b00000000000000390000000000 *000000000000000000000b000000000000003a0000000000000000000000000000000b00000000 *0000003b0000000000000000000000000000000b000000000000003c0000000000000000000000 *000000000b000000000000003d0000000000000000000000000000000b000000000000003e0000 *000000000000000000000000000b000000000000003f0000000000000000000000000000000b00 *000000000000400000000000000000000000000000000b00000000000000410000000000000000 *000000000000000c00000000000000420000000000000000000000000000000c00000000000000 *430000000000000000000000000000000c00000000000000440000000000000000000000000000 *000c00000000000000450000000000000000000000000000000c00000000000000460000000000 *000000000000000000000c00000000000000470000000000000000000000000000000c00000000 *000000480000000000000000000000000000000c00000000000000490000000000000000000000 *000000000c000000000000004a0000000000000000000000000000000c000000000000004b0000 *000000000000000000000000000d000000000000004c0000000000000000000000000000000d00 *0000000000004d0000000000000000000000000000000e000000000000004e0000000000000000 *000000000000000e000000000000004f0000000000000000000000000000000e00000000000000 *500000000000000000000000000000000f00000000000000510000000000000000000000000000 *000f00000000000000520000000000000000000000000000000f00000000000000530000000000 *000000000000000000000f00000000000000540000000000000000000000000000000f00000000 *000000550000000000000000000000000000000f00000000000000560000000000000000000000 *000000001000000000000000570000000000000000000000000000001000000000000000580000 *000000000000000000000000001000000000000000590000000000000000000000000000001000 *0000000000005a00000000000000000000000000000010000000000000005b0000000000000000 *0000000000000010000000000000005c0000000000000000000000000000001000000000000000 *5d00000000000000000000000000000010000000000000005e0000000000000000000000000000 *0010000000000000005f0000000000000000000000000000001100000000000000600000000000 *000000000000000000001100000000000000610000000000000000000000000000001100000000 *000000620000000000000000000000000000001100000000000000630000000000000000000000 *000000001100000000000000640000000000000000000000000000001100000000000000650000 *000000000000000000000000001100000000000000660000000000000000000000000000001100 *000000000000670000000000000000000000000000001100000000000000680000000000000000 *000000000000001100000000000000690000000000000000000000000000001100000000000000 *6a00000000000000000000000000000011000000000000006b0000000000000000000000000000 *0011000000000000006c00000000000000000000000000000011000000000000006d0000000000 *0000000000000000000011000000000000006e0000000000000000000000000000001100000000 *0000006f0000000000000000000000000000001200000000000000700000000000000000000000 *000000001200000000000000710000000000000000000000000000001300000000000000720000 *000000000000000000000000001400000000000000730000000000000000000000000000001400 *000000000000740000000000000000000000000000001400000000000000750000000000000000 *000000000000001500000000000000760000000000000000000000000000001600000000000000 *770000000000000000000000000000001600000000000000780000000000000000000000000000 *0016000000000000007900000000000000000000000000000016000000000000007a0000000000 *0000000000000000000016000000000000007b0000000000000000000000000000001600000000 *0000007c00000000000000000000000000000017000000000000007d0000000000000000000000 *0000000018000000000000007e00000000000000000000000000000019000000000000007f0000 *000000000000000000000000001900000000000000800000000000000000000000000000001900 *000000000000810000000000000000000000000000001900000000000000820000000000000000 *000000000000001900000000000000830000000000000000000000000000001900000000000000 *840000000000000000000000000000001900000000000000850000000000000000000000000000 *001a00000000000000860000000000000000000000000000001a00000000000000870000000000 *000000000000000000001a00000000000000880000000000000000000000000000001b00000000 *000000890000000000000000000000000000001b000000000000008a0000000000000000000000 *000000001c000000000000008b0000000000000000000000000000001c000000000000008c0000 *000000000000000000000000001c2c000000000000000000000000000000010000000000220000 *00000000008d000000000000008e000000000000008f0000000000000090000000000000009100 *000000000000920000000000000093000000000000009400000000000000950000000000000096 *000000000000009700000000000000980000000000000099000000000000009a00000000000000 *9b000000000000009c000000000000009d000000000000009e000000000000009f000000000000 *00a000000000000000a100000000000000a200000000000000a300000000000000a40000000000 *0000a500000000000000a600000000000000a700000000000000a8000000000000000000000000 *000000010000000000000002000000000000000300000000000000040000000000000005060000 *000000000000000000000000000100000000000000020000000000000003000000000000000400 *0000000000000500000000000000000000000000000002000000000025000000000000008d0000 *00000000008e000000000000008f00000000000000900000000000000091000000000000009200 *000000000000930000000000000094000000000000009500000000000000960000000000000097 *00000000000000980000000000000099000000000000009a000000000000009b00000000000000 *9c000000000000009d000000000000009e000000000000009f00000000000000a0000000000000 *00a100000000000000a200000000000000a300000000000000a400000000000000a50000000000 *0000a600000000000000a700000000000000a80000000000000000000000000000000100000000 *000000020000000000000003000000000000000400000000000000050000000000000006000000 *000000000700000000000000080300000000000000060000000000000008000000000000000700 *000000000000000000000000000003000000000026000000000000008d000000000000008e0000 *00000000008f000000000000009000000000000000910000000000000092000000000000009300 *000000000000940000000000000095000000000000009600000000000000970000000000000098 *0000000000000099000000000000009a000000000000009b000000000000009c00000000000000 *9d000000000000009e000000000000009f00000000000000a000000000000000a1000000000000 *00a200000000000000a300000000000000a400000000000000a500000000000000a60000000000 *0000a700000000000000a800000000000000000000000000000001000000000000000200000000 *00000003000000000000000400000000000000050000000000000009000000000000000a000000 *000000000b000000000000000c040000000000000009000000000000000a000000000000000b00 *0000000000000c00000000000000000000000000000004000000000025000000000000008d0000 *00000000008e000000000000008f00000000000000900000000000000091000000000000009200 *000000000000930000000000000094000000000000009500000000000000960000000000000097 *00000000000000980000000000000099000000000000009a000000000000009b00000000000000 *9c000000000000009d000000000000009e000000000000009f00000000000000a0000000000000 *00a100000000000000a200000000000000a300000000000000a400000000000000a50000000000 *0000a600000000000000a700000000000000a80000000000000000000000000000000100000000 *00000002000000000000000300000000000000040000000000000005000000000000000d000000 *000000000e000000000000000f03000000000000000d000000000000000e000000000000000f00 *000000000000000000000000000005000000000400000000000000100301020400000054000000 *680000006500000020010401000000000000000090000000000000001d000000000000001e0102 *01000000200107010201000000280104010000000000000000a9000000000000001d0000000000 *00001f0102010000002c0104010000000000000000aa000000000000001d000000000000002002 *0100000029010206000000200000006f0000007600000065000000720000002001070104010000 *000000000000ab000000000000001d000000000000002002020000002000000061010207000000 *200000007700000068000000650000007200000065000000200104010000000000000000aa0000 *00000000001d000000000000002002140000002000000069000000730000002000000074000000 *680000006500000020000000740000006f0000007000000020000000650000006c000000650000 *006d000000650000006e000000740000000a000000000000001303010204000000540000006800 *00006500000020010401000000000000000090000000000000001d000000000000001e01020100 *0000200107010201000000280104010000000000000000ac000000000000001d00000000000000 *1f0102010000002c0104010000000000000000aa000000000000001d0000000000000020020100 *000029010206000000200000006f00000076000000650000007200000020010701040100000000 *00000000ab000000000000001d0000000000000020020200000020000000610102070000002000 *00007700000068000000650000007200000065000000200104010000000000000000aa00000000 *0000001d0000000000000020021700000020000000690000007300000020000000740000006800 *00006500000020000000620000006f00000074000000740000006f0000006d0000002000000065 *0000006c000000650000006d000000650000006e000000740000000a0000000000000016030102 *0400000054000000680000006500000020010401000000000000000090000000000000001d0000 *00000000001e01020a00000020000000670000006900000076000000650000006e000000200000 *006200000079000000200107010201000000280104010000000000000000a9000000000000001d *000000000000001f0102010000002c0104010000000000000000ad000000000000001d00000000 *0000002102010000002902010000000a0000000000000019030102040000005400000068000000 *6500000020010401000000000000000090000000000000001d000000000000001e010201000000 *200107010201000000280104010000000000000000ac000000000000001d000000000000001f01 *02010000002c0104010000000000000000ae000000000000001d00000000000000210201000000 *2902010000000a11000000000000008d000000000000008f000000000000009000000000000000 *000000000000000001000000000000001000000000000000110000000000000012000000000000 *001300000000000000140000000000000015000000000000001600000000000000170000000000 *0000180000000000000019000000000000001a000000000000001b0c0000000000000019000000 *000000001a000000000000001b0000000000000016000000000000001700000000000000180000 *000000000013000000000000001400000000000000150000000000000010000000000000001100 *000000000000120000000000000000000000000000002200000000006000000000000000af0000 *0000000000b000000000000000b100000000000000b200000000000000b300000000000000b400 *000000000000b500000000000000b600000000000000b700000000000000b8000000000000008d *000000000000008e000000000000008f0000000000000090000000000000009100000000000000 *920000000000000093000000000000009400000000000000950000000000000096000000000000 *009700000000000000980000000000000099000000000000009a000000000000009b0000000000 *00009c000000000000009d000000000000009e000000000000009f00000000000000a000000000 *000000a100000000000000a200000000000000a300000000000000a400000000000000a5000000 *00000000a600000000000000a700000000000000a800000000000000b900000000000000ba0000 *0000000000bb00000000000000bc00000000000000bd00000000000000be00000000000000bf00 *000000000000c000000000000000c100000000000000c200000000000000c300000000000000c4 *00000000000000c500000000000000c600000000000000c700000000000000c800000000000000 *c900000000000000ca00000000000000cb00000000000000cc00000000000000cd000000000000 *00ce00000000000000cf00000000000000d000000000000000d100000000000000d20000000000 *0000d300000000000000d400000000000000d500000000000000d600000000000000d700000000 *000000d800000000000000d900000000000000da00000000000000db00000000000000dc000000 *00000000dd00000000000000de00000000000000df00000000000000e000000000000000e10000 *0000000000e200000000000000e300000000000000e400000000000000e500000000000000e600 *000000000000e700000000000000e800000000000000e900000000000000ea00000000000000eb *00000000000000ec00000000000000000000000000000001000000000000000200000000000000 *030000000000000004000000000000000500000000000000000000000000000000230000000000 *6000000000000000af00000000000000b000000000000000b100000000000000b2000000000000 *00b300000000000000b400000000000000b500000000000000b600000000000000b70000000000 *0000b8000000000000008d000000000000008e000000000000008f000000000000009000000000 *000000910000000000000092000000000000009300000000000000940000000000000095000000 *0000000096000000000000009700000000000000980000000000000099000000000000009a0000 *00000000009b000000000000009c000000000000009d000000000000009e000000000000009f00 *000000000000a000000000000000a100000000000000a200000000000000a300000000000000a4 *00000000000000a500000000000000a600000000000000a700000000000000a800000000000000 *b900000000000000ba00000000000000bb00000000000000bc00000000000000bd000000000000 *00be00000000000000bf00000000000000c000000000000000c100000000000000c20000000000 *0000c300000000000000c400000000000000c500000000000000c600000000000000c700000000 *000000c800000000000000c900000000000000ca00000000000000cb00000000000000cc000000 *00000000cd00000000000000ce00000000000000cf00000000000000d000000000000000d10000 *0000000000d200000000000000d300000000000000d400000000000000d500000000000000d600 *000000000000d700000000000000d800000000000000ed00000000000000ee00000000000000ef *00000000000000f000000000000000f100000000000000f200000000000000f300000000000000 *f400000000000000f500000000000000f600000000000000e300000000000000e4000000000000 *00e500000000000000e600000000000000e700000000000000e800000000000000e90000000000 *0000ea00000000000000eb00000000000000ec0000000000000000000000000000000100000000 *000000020000000000000003000000000000000400000000000000050000000000000000000000 *00000000002400000000005100000000000000af00000000000000b000000000000000b1000000 *00000000b200000000000000b400000000000000b500000000000000b700000000000000f70000 *0000000000b8000000000000008d000000000000008e000000000000008f000000000000009000 *000000000000910000000000000092000000000000009300000000000000940000000000000095 *000000000000009600000000000000970000000000000098000000000000009900000000000000 *9a000000000000009b000000000000009c000000000000009d000000000000009e000000000000 *009f00000000000000a000000000000000a100000000000000a200000000000000a30000000000 *0000a400000000000000a500000000000000a600000000000000a700000000000000a800000000 *000000f800000000000000f900000000000000fa00000000000000ba00000000000000bb000000 *00000000bc00000000000000bd00000000000000be00000000000000bf00000000000000c00000 *0000000000c100000000000000c200000000000000c300000000000000c400000000000000c500 *000000000000c600000000000000c700000000000000c800000000000000c900000000000000ca *00000000000000cb00000000000000cc00000000000000cd00000000000000ce00000000000000 *cf00000000000000d000000000000000d100000000000000d200000000000000d3000000000000 *00d400000000000000d500000000000000d600000000000000d700000000000000fb0000000000 *0000fc00000000000000fd00000000000000fe00000000000000d8000000000000000000000000 *000000010000000000000002000000000000000300000000000000040000000000000005000000 *000000000000000000000000002500000000006c00000000000000af00000000000000b0000000 *00000000b100000000000000b200000000000000b400000000000000b500000000000000b70000 *0000000000b8000000000000008d000000000000008e000000000000008f000000000000009000 *000000000000910000000000000092000000000000009300000000000000940000000000000095 *000000000000009600000000000000970000000000000098000000000000009900000000000000 *9a000000000000009b000000000000009c000000000000009d000000000000009e000000000000 *009f00000000000000a000000000000000a100000000000000a200000000000000a30000000000 *0000a400000000000000a500000000000000a600000000000000a700000000000000a800000000 *000000ff0000000000000100000000000000010100000000000001020000000000000103000000 *000000010400000000000001050000000000000106000000000000010700000000000001080000 *000000000109000000000000010a000000000000010b00000000000000ba00000000000000bb00 *000000000000bc00000000000000bd00000000000000be00000000000000bf00000000000000c0 *00000000000000c100000000000000c200000000000000c300000000000000c400000000000000 *c500000000000000c600000000000000c700000000000000c800000000000000c9000000000000 *00ca00000000000000cb00000000000000cc00000000000000cd00000000000000ce0000000000 *0000cf00000000000000d000000000000000d100000000000000d200000000000000d300000000 *000000d400000000000000d500000000000000d600000000000000d700000000000000d8000000 *000000010c000000000000010d000000000000010e000000000000010f00000000000001100000 *000000000111000000000000011200000000000001130000000000000114000000000000011500 *00000000000116000000000000011700000000000001180000000000000119000000000000011a *000000000000011b000000000000011c000000000000011d000000000000011e00000000000001 *1f0000000000000120000000000000012100000000000000000000000000000001000000000000 *000200000000000000030000000000000004000000000000000500000000000000000000000000 *0000002600000000005200000000000000af00000000000000b000000000000000b10000000000 *0000b200000000000000b400000000000000b500000000000000b700000000000000f700000000 *000000b8000000000000008d000000000000008e000000000000008f0000000000000090000000 *000000009100000000000000920000000000000093000000000000009400000000000000950000 *000000000096000000000000009700000000000000980000000000000099000000000000009a00 *0000000000009b000000000000009c000000000000009d000000000000009e000000000000009f *00000000000000a000000000000000a100000000000000a200000000000000a300000000000000 *a400000000000000a500000000000000a600000000000000a700000000000000a8000000000000 *012200000000000001230000000000000124000000000000012500000000000001260000000000 *0001270000000000000128000000000000012900000000000000ba00000000000000bb00000000 *000000bc00000000000000bd00000000000000be00000000000000bf00000000000000c0000000 *00000000c100000000000000c200000000000000c300000000000000c400000000000000c50000 *0000000000c600000000000000c700000000000000c800000000000000c900000000000000ca00 *000000000000cb00000000000000cc00000000000000cd00000000000000ce00000000000000cf *00000000000000d000000000000000d100000000000000d200000000000000d300000000000000 *d400000000000000d500000000000000d600000000000000d700000000000000d8000000000000 *000000000000000000010000000000000002000000000000000300000000000000040000000000 *000005000000000000000000000000000000002700000000006300000000000000af0000000000 *0000b000000000000000b100000000000000b200000000000000b300000000000000b400000000 *000000b500000000000000b600000000000000b700000000000000b8000000000000008d000000 *000000008e000000000000008f0000000000000090000000000000009100000000000000920000 *000000000093000000000000009400000000000000950000000000000096000000000000009700 *000000000000980000000000000099000000000000009a000000000000009b000000000000009c *000000000000009d000000000000009e000000000000009f00000000000000a000000000000000 *a100000000000000a200000000000000a300000000000000a400000000000000a5000000000000 *00a600000000000000a700000000000000a800000000000000b900000000000000ba0000000000 *0000bb00000000000000bc00000000000000bd00000000000000be00000000000000bf00000000 *000000c000000000000000c100000000000000c200000000000000c300000000000000c4000000 *00000000c500000000000000c600000000000000c700000000000000c800000000000000c90000 *0000000000ca00000000000000cb00000000000000cc00000000000000cd00000000000000ce00 *000000000000cf00000000000000d000000000000000d100000000000000d200000000000000d3 *00000000000000d400000000000000d500000000000000d600000000000000d700000000000000 *d8000000000000012a000000000000012b000000000000012c000000000000012d000000000000 *012e000000000000012f0000000000000130000000000000013100000000000001320000000000 *000133000000000000013400000000000001350000000000000136000000000000013700000000 *000001380000000000000139000000000000013a000000000000013b000000000000013c000000 *00000000e300000000000000e400000000000000e500000000000000e600000000000000000000 *000000000001000000000000000200000000000000030000000000000004000000000000000500 *0000000000000000000000000000002800000000006300000000000000af00000000000000b000 *000000000000b100000000000000b200000000000000b300000000000000b400000000000000b5 *00000000000000b600000000000000b700000000000000b8000000000000008d00000000000000 *8e000000000000008f000000000000009000000000000000910000000000000092000000000000 *009300000000000000940000000000000095000000000000009600000000000000970000000000 *0000980000000000000099000000000000009a000000000000009b000000000000009c00000000 *0000009d000000000000009e000000000000009f00000000000000a000000000000000a1000000 *00000000a200000000000000a300000000000000a400000000000000a500000000000000a60000 *0000000000a700000000000000a800000000000000b900000000000000ba00000000000000bb00 *000000000000bc00000000000000bd00000000000000be00000000000000bf00000000000000c0 *00000000000000c100000000000000c200000000000000c300000000000000c400000000000000 *c500000000000000c600000000000000c700000000000000c800000000000000c9000000000000 *00ca00000000000000cb00000000000000cc00000000000000cd00000000000000ce0000000000 *0000cf00000000000000d000000000000000d100000000000000d200000000000000d300000000 *000000d400000000000000d500000000000000d600000000000000d700000000000000d8000000 *000000013d000000000000013e000000000000013f000000000000014000000000000001410000 *000000000142000000000000014300000000000001440000000000000145000000000000014600 *0000000000014700000000000001480000000000000149000000000000014a0000000000000138 *0000000000000139000000000000013a000000000000013b000000000000013c00000000000000 *e300000000000000e400000000000000e500000000000000e60000000000000000000000000000 *000100000000000000020000000000000003000000000000000400000000000000050000000000 *00000000000000000000002900000000006e00000000000000af00000000000000b00000000000 *0000b100000000000000b200000000000000b300000000000000b400000000000000b500000000 *000000b600000000000000b700000000000000b8000000000000008d000000000000008e000000 *000000008f00000000000000900000000000000091000000000000009200000000000000930000 *000000000094000000000000009500000000000000960000000000000097000000000000009800 *00000000000099000000000000009a000000000000009b000000000000009c000000000000009d *000000000000009e000000000000009f00000000000000a000000000000000a100000000000000 *a200000000000000a300000000000000a400000000000000a500000000000000a6000000000000 *00a700000000000000a800000000000000b900000000000000ba00000000000000bb0000000000 *0000bc00000000000000bd00000000000000be00000000000000bf00000000000000c000000000 *000000c100000000000000c200000000000000c300000000000000c400000000000000c5000000 *00000000c600000000000000c700000000000000c800000000000000c900000000000000ca0000 *0000000000cb00000000000000cc00000000000000cd00000000000000ce00000000000000cf00 *000000000000d000000000000000d100000000000000d200000000000000d300000000000000d4 *00000000000000d500000000000000d600000000000000d700000000000000d800000000000001 *4b000000000000014c000000000000014d000000000000014e000000000000014f000000000000 *015000000000000001510000000000000152000000000000015300000000000001540000000000 *000155000000000000015600000000000001570000000000000158000000000000015900000000 *0000015a000000000000015b000000000000015c000000000000015d0000000000000138000000 *0000000139000000000000013a000000000000013b000000000000013c00000000000000e30000 *0000000000e400000000000000e500000000000000e600000000000000e700000000000000e800 *000000000000e900000000000000ea00000000000000eb00000000000000ec0000000000000000 *000000000000000100000000000000020000000000000003000000000000000400000000000000 *05000000000000000000000000000000002a00000000006e00000000000000af00000000000000 *b000000000000000b100000000000000b200000000000000b300000000000000b4000000000000 *00b500000000000000b600000000000000b700000000000000b8000000000000008d0000000000 *00008e000000000000008f00000000000000900000000000000091000000000000009200000000 *000000930000000000000094000000000000009500000000000000960000000000000097000000 *00000000980000000000000099000000000000009a000000000000009b000000000000009c0000 *00000000009d000000000000009e000000000000009f00000000000000a000000000000000a100 *000000000000a200000000000000a300000000000000a400000000000000a500000000000000a6 *00000000000000a700000000000000a800000000000000b900000000000000ba00000000000000 *bb00000000000000bc00000000000000bd00000000000000be00000000000000bf000000000000 *00c000000000000000c100000000000000c200000000000000c300000000000000c40000000000 *0000c500000000000000c600000000000000c700000000000000c800000000000000c900000000 *000000ca00000000000000cb00000000000000cc00000000000000cd00000000000000ce000000 *00000000cf00000000000000d000000000000000d100000000000000d200000000000000d30000 *0000000000d400000000000000d500000000000000d600000000000000d700000000000000d800 *0000000000015e000000000000015f000000000000016000000000000001610000000000000162 *000000000000016300000000000001640000000000000165000000000000016600000000000001 *6700000000000001680000000000000169000000000000016a000000000000016b000000000000 *0159000000000000015a000000000000015b000000000000015c000000000000015d0000000000 *0001380000000000000139000000000000013a000000000000013b000000000000013c00000000 *000000e300000000000000e400000000000000e500000000000000e600000000000000e7000000 *00000000e800000000000000e900000000000000ea00000000000000eb00000000000000ec0000 *000000000000000000000000000100000000000000020000000000000003000000000000000400 *00000000000005000000000000000000000000000000002b00000000005e00000000000000af00 *000000000000b000000000000000b100000000000000b200000000000000b300000000000000b4 *00000000000000b500000000000000b600000000000000b700000000000000b800000000000000 *8d000000000000008e000000000000008f00000000000000900000000000000091000000000000 *009200000000000000930000000000000094000000000000009500000000000000960000000000 *00009700000000000000980000000000000099000000000000009a000000000000009b00000000 *0000009c000000000000009d000000000000009e000000000000009f00000000000000a0000000 *00000000a100000000000000a200000000000000a300000000000000a400000000000000a50000 *0000000000a600000000000000a700000000000000a800000000000000b900000000000000ba00 *000000000000bb00000000000000bc00000000000000bd00000000000000be00000000000000bf *00000000000000c000000000000000c100000000000000c200000000000000c300000000000000 *c400000000000000c500000000000000c600000000000000c700000000000000c8000000000000 *00c900000000000000ca00000000000000cb00000000000000cc00000000000000cd0000000000 *0000ce00000000000000cf00000000000000d000000000000000d100000000000000d200000000 *000000d300000000000000d400000000000000d500000000000000d600000000000000d7000000 *00000000d8000000000000016c000000000000016d000000000000016e000000000000016f0000 *000000000170000000000000017100000000000001720000000000000173000000000000017400 *00000000000175000000000000015a000000000000015b000000000000015c000000000000015d *00000000000000e300000000000000e400000000000000e500000000000000e600000000000000 *000000000000000001000000000000000200000000000000030000000000000004000000000000 *0005000000000000000000000000000000002c0000000000950000000000000176000000000000 *00af00000000000000b000000000000000b100000000000000b200000000000000b40000000000 *0000b500000000000000b70000000000000177000000000000017800000000000000b800000000 *0000008d0000000000000179000000000000017a000000000000008e000000000000008f000000 *000000009000000000000000910000000000000092000000000000009300000000000000940000 *000000000095000000000000009600000000000000970000000000000098000000000000009900 *0000000000009a000000000000009b000000000000009c000000000000009d000000000000009e *000000000000009f00000000000000a000000000000000a100000000000000a200000000000000 *a300000000000000a400000000000000a500000000000000a600000000000000a7000000000000 *00a8000000000000017b000000000000017c000000000000017d000000000000017e0000000000 *00017f000000000000018000000000000001810000000000000182000000000000018300000000 *000001840000000000000185000000000000018600000000000001870000000000000188000000 *0000000189000000000000018a000000000000018b000000000000018c000000000000018d0000 *00000000018e000000000000018f00000000000001900000000000000191000000000000019200 *000000000001930000000000000194000000000000019500000000000001960000000000000197 *00000000000001980000000000000199000000000000019a000000000000019b00000000000001 *9c000000000000019d000000000000019e000000000000019f00000000000001a0000000000000 *01a100000000000001a200000000000001a300000000000001a400000000000001a50000000000 *0001a600000000000001a700000000000001a800000000000001a900000000000001aa00000000 *000001ab00000000000001ac00000000000001ad00000000000001ae00000000000001af000000 *00000001b000000000000001b100000000000001b200000000000001b300000000000001b40000 *0000000001b500000000000001b600000000000001b700000000000001b800000000000001b900 *000000000001ba00000000000001bb00000000000001bc00000000000001bd00000000000001be *00000000000001bf00000000000001c000000000000001c100000000000000ba00000000000000 *bb00000000000000bc00000000000000bd00000000000000be00000000000000bf000000000000 *00c000000000000000c100000000000000c200000000000000c300000000000000c40000000000 *0000c500000000000000c600000000000000c700000000000000c800000000000000c900000000 *000000ca00000000000000cb00000000000000cc00000000000000cd00000000000000ce000000 *00000000cf00000000000000d000000000000000d100000000000000d200000000000000d30000 *0000000000d400000000000000d500000000000000d600000000000000d700000000000000d800 *000000000000000000000000000001000000000000000200000000000000030000000000000004 *0000000000000005000000000000000000000000000000002d00000000004f00000000000000af *00000000000000b000000000000000b100000000000000b200000000000000b300000000000000 *b400000000000000b500000000000000b600000000000000b700000000000000b8000000000000 *008d000000000000008e000000000000008f000000000000009000000000000000910000000000 *000092000000000000009300000000000000940000000000000095000000000000009600000000 *0000009700000000000000980000000000000099000000000000009a000000000000009b000000 *000000009c000000000000009d000000000000009e000000000000009f00000000000000a00000 *0000000000a100000000000000a200000000000000a300000000000000a400000000000000a500 *000000000000a600000000000000a700000000000000a800000000000000b900000000000000ba *00000000000000bb00000000000000bc00000000000000bd00000000000000be00000000000000 *bf00000000000000c000000000000000c100000000000000c200000000000000c3000000000000 *00c400000000000000c500000000000000c600000000000000c700000000000000c80000000000 *0000c900000000000000ca00000000000000cb00000000000000cc00000000000000cd00000000 *000000ce00000000000000cf00000000000000d000000000000000d100000000000000d2000000 *00000000d300000000000000d400000000000000d500000000000000d600000000000000d70000 *0000000000d800000000000001c200000000000001c300000000000001c4000000000000000000 *000000000000010000000000000002000000000000000300000000000000040000000000000005 *000000000000000000000000000000002e00000000002800000000000001c500000000000001c6 *00000000000001c7000000000000008d000000000000008e000000000000008f00000000000000 *900000000000000091000000000000009200000000000000930000000000000094000000000000 *009500000000000000960000000000000097000000000000009800000000000000990000000000 *00009a000000000000009b000000000000009c000000000000009d000000000000009e00000000 *0000009f00000000000000a000000000000000a100000000000000a200000000000000a3000000 *00000000a400000000000000a500000000000000a600000000000000a700000000000000a80000 *000000000000000000000000000100000000000000020000000000000003000000000000000400 *0000000000000500000000000001c800000000000001c900000000000001ca0000000000000000 *00000000000000002f00000000005900000000000000af00000000000000b000000000000000b1 *00000000000000b200000000000000b400000000000000b500000000000000b700000000000000 *b8000000000000008d000000000000008e000000000000008f0000000000000090000000000000 *009100000000000000920000000000000093000000000000009400000000000000950000000000 *000096000000000000009700000000000000980000000000000099000000000000009a00000000 *0000009b000000000000009c000000000000009d000000000000009e000000000000009f000000 *00000000a000000000000000a100000000000000a200000000000000a300000000000000a40000 *0000000000a500000000000000a600000000000000a700000000000000a800000000000000ba00 *000000000000bb00000000000000bc00000000000000bd00000000000000be00000000000000bf *00000000000000c000000000000000c100000000000000c200000000000000c300000000000000 *c400000000000000c500000000000000c600000000000000c700000000000000c8000000000000 *00c900000000000000ca00000000000000cb00000000000000cc00000000000000cd0000000000 *0000ce00000000000000cf00000000000000d000000000000000d100000000000000d200000000 *000000d300000000000000d400000000000000d500000000000000d600000000000000d7000000 *00000000d800000000000001cb00000000000001cc00000000000001cd00000000000001ce0000 *0000000001cf00000000000001d000000000000001d100000000000001d200000000000001d300 *000000000001d400000000000001d500000000000001d600000000000000e300000000000000e4 *00000000000000e500000000000000e60000000000000000000000000000000100000000000000 *020000000000000003000000000000000400000000000000050000000000000000000000000000 *00000600000000003000000000000000b7000000000000008d000000000000008e000000000000 *008f00000000000000900000000000000091000000000000009200000000000000930000000000 *000094000000000000009500000000000000960000000000000097000000000000009800000000 *00000099000000000000009a000000000000009b000000000000009c000000000000009d000000 *000000009e000000000000009f00000000000000a000000000000000a100000000000000a20000 *0000000000a300000000000000a400000000000000a500000000000000a600000000000000a700 *000000000000a800000000000000be00000000000000cb00000000000000d600000000000000d7 *000000000000000000000000000000010000000000000002000000000000000300000000000000 *040000000000000005000000000000001c000000000000001d000000000000001e000000000000 *001f00000000000000200000000000000021000000000000002200000000000000230000000000 *00002409000000000000002200000000000000230000000000000024000000000000001f000000 *00000000200000000000000021000000000000001c000000000000001d000000000000001e0000 *0000000000000000000000000007000000000009000000000000008d000000000000008f000000 *000000009000000000000000000000000000000001000000000000000200000000000000030000 *000000000025000000000000002602000000000000002500000000000000260000000000000000 *0000000000000008000000000027000000000000008d000000000000008e000000000000008f00 *000000000000900000000000000091000000000000009200000000000000930000000000000094 *000000000000009500000000000000960000000000000097000000000000009800000000000000 *99000000000000009a000000000000009b000000000000009c000000000000009d000000000000 *009e000000000000009f00000000000000a000000000000000a100000000000000a20000000000 *0000a300000000000000a400000000000000a500000000000000a600000000000000a700000000 *000000a80000000000000000000000000000000100000000000000020000000000000003000000 *000000000400000000000000050000000000000006000000000000000700000000000000080000 *000000000027000000000000002802000000000000002700000000000000280000000000000000 *000000000000000900000000002c000000000000008d000000000000008e000000000000008f00 *000000000000900000000000000091000000000000009200000000000000930000000000000094 *000000000000009500000000000000960000000000000097000000000000009800000000000000 *99000000000000009a000000000000009b000000000000009c000000000000009d000000000000 *009e000000000000009f00000000000000a000000000000000a100000000000000a20000000000 *0000a300000000000000a400000000000000a500000000000000a600000000000000a700000000 *000000a80000000000000000000000000000000100000000000000020000000000000003000000 *000000000400000000000000050000000000000006000000000000000700000000000000080000 *000000000029000000000000002a000000000000002b000000000000002c000000000000002d00 *0000000000002e000000000000002f070000000000000029000000000000002b00000000000000 *2a000000000000002e000000000000002d000000000000002c000000000000002f000000000000 *0000000000000000000a000000000009000000000000008d000000000000008f00000000000000 *900000000000000000000000000000000100000000000000020000000000000003000000000000 *003000000000000000310200000000000000300000000000000031000000000000000000000000 *0000000b000000000031000000000000008d000000000000008e000000000000008f0000000000 *000090000000000000009100000000000000920000000000000093000000000000009400000000 *000000950000000000000096000000000000009700000000000000980000000000000099000000 *000000009a000000000000009b000000000000009c000000000000009d000000000000009e0000 *00000000009f00000000000000a000000000000000a100000000000000a200000000000000a300 *000000000000a400000000000000a500000000000000a600000000000000a700000000000000a8 *000000000000000000000000000000010000000000000002000000000000000300000000000000 *040000000000000005000000000000003200000000000000330000000000000034000000000000 *003500000000000000360000000000000037000000000000003800000000000000390000000000 *00003a000000000000003b000000000000003c000000000000003d000000000000003e00000000 *0000003f00000000000000400f000000000000003b000000000000003c000000000000003d0000 *00000000003e000000000000003f00000000000000400000000000000035000000000000003600 *000000000000370000000000000032000000000000003300000000000000340000000000000038 *0000000000000039000000000000003a0000000000000000000000000000000c00000000002f00 *0000000000008d000000000000008e000000000000008f00000000000000900000000000000091 *000000000000009200000000000000930000000000000094000000000000009500000000000000 *96000000000000009700000000000000980000000000000099000000000000009a000000000000 *009b000000000000009c000000000000009d000000000000009e000000000000009f0000000000 *0000a000000000000000a100000000000000a200000000000000a300000000000000a400000000 *000000a500000000000000a600000000000000a700000000000000a80000000000000000000000 *000000000100000000000000020000000000000003000000000000000400000000000000050000 *000000000006000000000000000700000000000000080000000000000041000000000000004200 *000000000000430000000000000044000000000000004500000000000000460000000000000047 *00000000000000480000000000000049000000000000004a0a0000000000000046000000000000 *004700000000000000450000000000000048000000000000004300000000000000440000000000 *00004100000000000000420000000000000049000000000000004a000000000000000000000000 *0000000d00000000002500000000000001d7000000000000008d000000000000008e0000000000 *00008f000000000000009000000000000000910000000000000092000000000000009300000000 *000000940000000000000095000000000000009600000000000000970000000000000098000000 *0000000099000000000000009a000000000000009b000000000000009c000000000000009d0000 *00000000009e000000000000009f00000000000000a000000000000000a100000000000000a200 *000000000000a300000000000000a400000000000000a500000000000000a600000000000000a7 *00000000000000a800000000000000000000000000000001000000000000000200000000000000 *0300000000000000040000000000000005000000000000004b000000000000004c020000000000 *00004b000000000000004c0000000000000000000000000000000e000000000003000000000000 *004d000000000000004e000000000000004f03000000000000004d000000000000004e00000000 *0000004f0000000000000000000000000000000f00000000020000000000000050030102020000 *004100000020010401000000000000000090000000000000001d000000000000001e01020b0000 *00200000006900000073000000200000006a000000750000007300000074000000200000006100 *0000200104010000000000000001d8000000000000001d00000000000000300213000000200000 *0077000000690000007400000068000000200000006f0000006e00000065000000200000006f00 *0000620000006a0000006500000063000000740000002e000000200000000a0000000000000052 *030102040000005400000068000000650000002001040100000000000000009000000000000000 *1d000000000000001e010233000000200000006f0000006600000020000000650000006e000000 *640000006f0000006d0000006f00000072000000700000006800000069000000730000006d0000 *0073000000200000006f00000076000000650000007200000020000000730000006f0000006d00 *000065000000200000006f000000620000006a0000006500000063000000740000002000000069 *0000006e00000020000000610000006e0000002000000061000000720000006200000069000000 *7400000072000000610000007200000079000000200104010000000000000001d8000000000000 *001d000000000000003002010000000a09000000000000008d000000000000008f000000000000 *009000000000000000500000000000000051000000000000005200000000000000530000000000 *000054000000000000005506000000000000005200000000000000530000000000000054000000 *000000005000000000000000510000000000000055000000000000000000000000000000100000 *00000032000000000000008d00000000000001d900000000000001da00000000000001db000000 *00000001dc00000000000001dd00000000000001de00000000000001df000000000000008e0000 *00000000008f000000000000009000000000000000910000000000000092000000000000009300 *000000000000940000000000000095000000000000009600000000000000970000000000000098 *0000000000000099000000000000009a000000000000009b000000000000009c00000000000000 *9d000000000000009e000000000000009f00000000000000a000000000000000a1000000000000 *00a200000000000000a300000000000000a400000000000000a500000000000000a60000000000 *0000a700000000000000a800000000000000000000000000000001000000000000000200000000 *000000030000000000000004000000000000000500000000000000560000000000000057000000 *00000000580000000000000059000000000000005a000000000000005b000000000000005c0000 *00000000005d000000000000005e09000000000000005c000000000000005d000000000000005e *0000000000000059000000000000005a000000000000005b000000000000005600000000000000 *57000000000000005800000000000000000000000000000011000000000041000000000000008d *000000000000008e000000000000008f0000000000000090000000000000009100000000000000 *920000000000000093000000000000009400000000000000950000000000000096000000000000 *009700000000000000980000000000000099000000000000009a000000000000009b0000000000 *00009c000000000000009d000000000000009e000000000000009f00000000000000a000000000 *000000a100000000000000a200000000000000a300000000000000a400000000000000a5000000 *00000000a600000000000000a700000000000000a8000000000000000000000000000000010000 *000000000002000000000000000300000000000000040000000000000005000000000000003200 *000000000000330000000000000034000000000000003500000000000000360000000000000037 *00000000000000380000000000000039000000000000003a000000000000003b00000000000000 *3c000000000000003d000000000000003e000000000000003f0000000000000040000000000000 *005f00000000000000600000000000000061000000000000006200000000000000630000000000 *000064000000000000006500000000000000660000000000000067000000000000006800000000 *00000069000000000000006a000000000000006b000000000000006c000000000000006d000000 *000000006e10000000000000005f00000000000000600000000000000061000000000000006200 *000000000000630000000000000064000000000000006500000000000000660000000000000067 *00000000000000680000000000000069000000000000006a000000000000006b00000000000000 *6c000000000000006d000000000000006e0000000000000000000000000000001200000000001e *000000000000008d000000000000008e000000000000008f000000000000009000000000000000 *910000000000000092000000000000009300000000000000940000000000000095000000000000 *0096000000000000009700000000000000980000000000000099000000000000009a0000000000 *00009b000000000000009c000000000000009d000000000000009e000000000000009f00000000 *000000a000000000000000a100000000000000a200000000000000a300000000000000a4000000 *00000000a500000000000000a600000000000000a700000000000000a8000000000000006f0000 *00000000007002000000000000006f000000000000007000000000000000000000000000000013 *00000000001f000000000000008d000000000000008e000000000000008f000000000000009000 *000000000000910000000000000092000000000000009300000000000000940000000000000095 *000000000000009600000000000000970000000000000098000000000000009900000000000000 *9a000000000000009b000000000000009c000000000000009d000000000000009e000000000000 *009f00000000000000a000000000000000a100000000000000a200000000000000a30000000000 *0000a400000000000000a500000000000000a600000000000000a700000000000000a800000000 *0000006f0000000000000070000000000000007101000000000000007100000000000000000000 *000000000014000000000021000000000000008d000000000000008e000000000000008f000000 *000000009000000000000000910000000000000092000000000000009300000000000000940000 *000000000095000000000000009600000000000000970000000000000098000000000000009900 *0000000000009a000000000000009b000000000000009c000000000000009d000000000000009e *000000000000009f00000000000000a000000000000000a100000000000000a200000000000000 *a300000000000000a400000000000000a500000000000000a600000000000000a7000000000000 *00a8000000000000006f0000000000000070000000000000007200000000000000730000000000 *000074030000000000000072000000000000007300000000000000740000000000000000000000 *0000000015000000000023000000000000008d000000000000008e000000000000008f00000000 *000000900000000000000091000000000000009200000000000000930000000000000094000000 *000000009500000000000000960000000000000097000000000000009800000000000000990000 *00000000009a000000000000009b000000000000009c000000000000009d000000000000009e00 *0000000000009f00000000000000a000000000000000a100000000000000a200000000000000a3 *00000000000000a400000000000000a500000000000000a600000000000000a700000000000000 *a8000000000000006f000000000000007000000000000000710000000000000072000000000000 *007300000000000000740000000000000075010000000000000075000000000000000000000000 *00000016000000000027000000000000008d000000000000008e000000000000008f0000000000 *000090000000000000009100000000000000920000000000000093000000000000009400000000 *000000950000000000000096000000000000009700000000000000980000000000000099000000 *000000009a000000000000009b000000000000009c000000000000009d000000000000009e0000 *00000000009f00000000000000a000000000000000a100000000000000a200000000000000a300 *000000000000a400000000000000a500000000000000a600000000000000a700000000000000a8 *000000000000006f00000000000000700000000000000072000000000000007300000000000000 *740000000000000076000000000000007700000000000000780000000000000079000000000000 *007a000000000000007b060000000000000079000000000000007a000000000000007b00000000 *000000760000000000000077000000000000007800000000000000000000000000000017000000 *000022000000000000008d000000000000008e000000000000008f000000000000009000000000 *000000910000000000000092000000000000009300000000000000940000000000000095000000 *0000000096000000000000009700000000000000980000000000000099000000000000009a0000 *00000000009b000000000000009c000000000000009d000000000000009e000000000000009f00 *000000000000a000000000000000a100000000000000a200000000000000a300000000000000a4 *00000000000000a500000000000000a600000000000000a700000000000000a800000000000000 *6f0000000000000070000000000000007200000000000000730000000000000074000000000000 *007c01000000000000007c00000000000000000000000000000018000000000023000000000000 *008d000000000000008e000000000000008f000000000000009000000000000000910000000000 *000092000000000000009300000000000000940000000000000095000000000000009600000000 *0000009700000000000000980000000000000099000000000000009a000000000000009b000000 *000000009c000000000000009d000000000000009e000000000000009f00000000000000a00000 *0000000000a100000000000000a200000000000000a300000000000000a400000000000000a500 *000000000000a600000000000000a700000000000000a8000000000000006f0000000000000070 *000000000000007200000000000000730000000000000074000000000000007c00000000000000 *7d01000000000000007d0000000000000000000000000000001900000000002a00000000000000 *8d000000000000008e000000000000008f00000000000000900000000000000091000000000000 *009200000000000000930000000000000094000000000000009500000000000000960000000000 *00009700000000000000980000000000000099000000000000009a000000000000009b00000000 *0000009c000000000000009d000000000000009e000000000000009f00000000000000a0000000 *00000000a100000000000000a200000000000000a300000000000000a400000000000000a50000 *0000000000a600000000000000a700000000000000a8000000000000006f000000000000007000 *0000000000007200000000000000730000000000000074000000000000007c000000000000007d *000000000000007e000000000000007f0000000000000080000000000000008100000000000000 *820000000000000083000000000000008407000000000000008200000000000000830000000000 *000084000000000000007e00000000000000810000000000000080000000000000007f00000000 *000000000000000000000031000000000024000000000000008d000000000000008e0000000000 *00008f000000000000009000000000000000910000000000000092000000000000009300000000 *000000940000000000000095000000000000009600000000000000970000000000000098000000 *0000000099000000000000009a000000000000009b000000000000009c000000000000009d0000 *00000000009e000000000000009f00000000000000a000000000000000a100000000000000a200 *000000000000a300000000000000a400000000000000a500000000000000a600000000000000a7 *00000000000000a8000000000000006f0000000000000070000000000000007100000000000000 *72000000000000007300000000000000740000000000000075000000000000007c000000000000 *000000000000000000001a000000000021000000000000008d000000000000008e000000000000 *008f00000000000000900000000000000091000000000000009200000000000000930000000000 *000094000000000000009500000000000000960000000000000097000000000000009800000000 *00000099000000000000009a000000000000009b000000000000009c000000000000009d000000 *000000009e000000000000009f00000000000000a000000000000000a100000000000000a20000 *0000000000a300000000000000a400000000000000a500000000000000a600000000000000a700 *000000000000a8000000000000006f000000000000007000000000000000850000000000000086 *000000000000008703000000000000008500000000000000860000000000000087000000000000 *0000000000000000001b000000000024000000000000008d000000000000008e00000000000000 *8f0000000000000090000000000000009100000000000000920000000000000093000000000000 *009400000000000000950000000000000096000000000000009700000000000000980000000000 *000099000000000000009a000000000000009b000000000000009c000000000000009d00000000 *0000009e000000000000009f00000000000000a000000000000000a100000000000000a2000000 *00000000a300000000000000a400000000000000a500000000000000a600000000000000a70000 *0000000000a8000000000000006f00000000000000700000000000000071000000000000008500 *000000000000860000000000000087000000000000008800000000000000890200000000000000 *88000000000000008900000000000000000000000000000032000000000026000000000000008d *000000000000008e000000000000008f0000000000000090000000000000009100000000000000 *920000000000000093000000000000009400000000000000950000000000000096000000000000 *009700000000000000980000000000000099000000000000009a000000000000009b0000000000 *00009c000000000000009d000000000000009e000000000000009f00000000000000a000000000 *000000a100000000000000a200000000000000a300000000000000a400000000000000a5000000 *00000000a600000000000000a700000000000000a8000000000000006f00000000000000700000 *00000000007200000000000000730000000000000074000000000000007c000000000000007d00 *000000000000850000000000000086000000000000008700000000000000000000000000000000 *1c000000000029000000000000008d000000000000008e000000000000008f0000000000000090 *000000000000009100000000000000920000000000000093000000000000009400000000000000 *950000000000000096000000000000009700000000000000980000000000000099000000000000 *009a000000000000009b000000000000009c000000000000009d000000000000009e0000000000 *00009f00000000000000a000000000000000a100000000000000a200000000000000a300000000 *000000a400000000000000a500000000000000a600000000000000a700000000000000a8000000 *000000006f00000000000000700000000000000072000000000000007300000000000000740000 *00000000007c000000000000007d00000000000000850000000000000086000000000000008700 *0000000000008a000000000000008b000000000000008c03000000000000008a00000000000000 *8b000000000000008c00000000000001e000000000000000000000000000000001030000000000 *000033000000000000000000000000000000010000000000000000340000000000000000000000 *000000000100000000000000003500000000000000000000000000000001000000000000000036 *000000000000000000000000000000010000000000000000370000000000000000000000000000 *000100000000000000003800000000000000000000000000000002030000000000000039000000 *0000000000000000000000000200000000000000003a0000000000000000000000000000000200 *000000000000003b0000000000000000000000000000000303000000000000003c000000000000 *0000000000000000000301000000000000003c0000000000000000000000000000000300000000 *000000003d0000000000000000000000000000000300000000000000003e000000000000000000 *0000000000000403000000000000003f0000000000000000000000000000000401000000000000 *003f00000000000000000000000000000004000000000000000040000000000000000000000000 *000000050300000000000000410000000000000000000000000000000501000000000000004100 *000000000000000000000000000005000000000000000042000000000000000000000000000000 *050300000000000000430000000000000000000000000000000501000000000000004300000000 *000000000000000000000005000000000000000044000000000000000000000000000000050300 *000000000000450000000000000000000000000000000501000000000000004500000000000000 *000000000000000005000000000000000046000000000000000000000000000000050300000000 *000000470000000000000000000000000000000501000000000000004700000000000000000000 *000000000005000000000000000048000000000000000000000000000000060300000000000000 *490000000000000000000000000000000601000000000000004900000000000000000000000000 *00000600000000000000004a0000000000000000000000000000000603000000000000004b0000 *000000000000000000000000000601000000000000004b00000000000000000000000000000006 *00000000000000004c0000000000000000000000000000000603000000000000004d0000000000 *000000000000000000000601000000000000004d00000000000000000000000000000006000000 *00000000004e0000000000000000000000000000000703000000000000004f0000000000000000 *000000000000000700000000000000005000000000000000000000000000000008030000000000 *000051000000000000000000000000000000080000000000000000520000000000000000000000 *000000000903000000000000005300000000000000000000000000000009030000000000000054 *000000000000000000000000000000090300000000000000550000000000000000000000000000 *000900000000000000005600000000000000000000000000000009000000000000000057000000 *000000000000000000000000090000000000000000580000000000000000000000000000000900 *00000000000000590000000000000000000000000000000a03000000000000004f000000000000 *0000000000000000000a0000000000000000500000000000000000000000000000000b03000000 *000000005a0000000000000000000000000000000b01000000000000005a000000000000000000 *0000000000000b00000000000000005b0000000000000000000000000000000b03000000000000 *005c0000000000000000000000000000000b01000000000000005c000000000000000000000000 *0000000b00000000000000005d0000000000000000000000000000000b03000000000000005e00 *00000000000000000000000000000b01000000000000005e000000000000000000000000000000 *0b00000000000000005f0000000000000000000000000000000b03000000000000006000000000 *00000000000000000000000b0300000000000000610000000000000000000000000000000b0000 *000000000000620000000000000000000000000000000b00000000000000006300000000000000 *00000000000000000b0000000000000000640000000000000000000000000000000b0000000000 *000000650000000000000000000000000000000c03000000000000006600000000000000000000 *00000000000c0000000000000000670000000000000000000000000000000c0300000000000000 *680000000000000000000000000000000c00000000000000006900000000000000000000000000 *00000c03000000000000006a0000000000000000000000000000000c03000000000000006b0000 *000000000000000000000000000c00000000000000006c0000000000000000000000000000000c *00000000000000006d0000000000000000000000000000000c00000000000000006e0000000000 *000000000000000000000c00000000000000006f0000000000000000000000000000000d000000 *0000000000700000000000000000000000000000000d0000000000000000710000000000000000 *000000000000000e0300000000000000720000000000000000000000000000000e010000000000 *0000720000000000000000000000000000000e0000000000000000730000000000000000000000 *000000000f0300000000000000740000000000000000000000000000000f010000000000000074 *0000000000000000000000000000000f0300000000000000750000000000000000000000000000 *000f0100000000000000750000000000000000000000000000000f000000000000000076000000 *0000000000000000000000000f0000000000000000770000000000000000000000000000001003 *000000000000007800000000000000000000000000000010010000000000000078000000000000 *000000000000000000100000000000000000790000000000000000000000000000001003000000 *000000007a0000000000000000000000000000001001000000000000007a000000000000000000 *0000000000001000000000000000007b0000000000000000000000000000001003000000000000 *007c0000000000000000000000000000001001000000000000007c000000000000000000000000 *0000001000000000000000007d0000000000000000000000000000001100000000000000007e00 *00000000000000000000000000001100000000000000007f000000000000000000000000000000 *110000000000000000800000000000000000000000000000001100000000000000008100000000 *000000000000000000000011000000000000000082000000000000000000000000000000110000 *000000000000830000000000000000000000000000001100000000000000008400000000000000 *000000000000000011000000000000000085000000000000000000000000000000110000000000 *000000860000000000000000000000000000001100000000000000008700000000000000000000 *000000000011000000000000000088000000000000000000000000000000110000000000000000 *890000000000000000000000000000001100000000000000008a00000000000000000000000000 *00001100000000000000008b0000000000000000000000000000001100000000000000008c0000 *000000000000000000000000001100000000000000008d00000000000000000000000000000012 *00000000000000008e0000000000000000000000000000001200000000000000008f0000000000 *000000000000000000001300000000000000009000000000000000000000000000000014030000 *000000000091000000000000000000000000000000140000000000000000920000000000000000 *000000000000001400000000000000009300000000000000000000000000000015000000000000 *000094000000000000000000000000000000160300000000000000950000000000000000000000 *000000001601000000000000009500000000000000000000000000000016000000000000000096 *000000000000000000000000000000160300000000000000970000000000000000000000000000 *001601000000000000009700000000000000000000000000000016000000000000000098000000 *000000000000000000000000170300000000000000990000000000000000000000000000001803 *000000000000009a0000000000000000000000000000001903000000000000009b000000000000 *0000000000000000001901000000000000009c0000000000000000000000000000001901000000 *000000009b0000000000000000000000000000001901000000000000009d000000000000000000 *0000000000001903000000000000009e0000000000000000000000000000001901000000000000 *009e0000000000000000000000000000001900000000000000009f000000000000000000000000 *0000001a0300000000000000a00000000000000000000000000000001a0000000000000000a100 *00000000000000000000000000001a0000000000000000a2000000000000000000000000000000 *1b0000000000000000a30000000000000000000000000000001b0000000000000000a400000000 *00000000000000000000001c0300000000000000a50000000000000000000000000000001c0100 *000000000000a50000000000000000000000000000001c0000000000000000a600000000000000 *1d000000000000001e0000000000000000a7000000000000001d000000000000001e0000000000 *000000a8000000000000001d000000000000001e0000000000000000a9000000000000001d0000 *00000000001e0300000000000000aa000000000000001d000000000000001e0000000000000000 *ab000000000000001d000000000000001e0100000000000000ac000000000000001d0000000000 *00001e0300000000000000ac000000000000001d000000000000001e0000000000000000ad0000 *00000000001d000000000000001e010000000000000075000000000000001d000000000000001e *030000000000000075000000000000001d000000000000001e0000000000000000ae0000000000 *00001d000000000000001e0100000000000000af000000000000001d000000000000001e030000 *0000000000af000000000000001d000000000000001e0000000000000000b0000000000000001d *000000000000001e0100000000000000b1000000000000001d000000000000001e030000000000 *0000b1000000000000001d000000000000001e0000000000000000b2000000000000001d000000 *000000001e0100000000000000b3000000000000001d000000000000001e0300000000000000b3 *000000000000001d000000000000001e0000000000000000b4000000000000001d000000000000 *001e0100000000000000b5000000000000001d000000000000001e0300000000000000b5000000 *000000001d000000000000001e0000000000000000b6000000000000001d000000000000001e01 *00000000000000b7000000000000001d000000000000001e0300000000000000b7000000000000 *001d000000000000001e0000000000000000b8000000000000001d000000000000001e01000000 *00000000b9000000000000001d000000000000001e0300000000000000b9000000000000001d00 *000000000000ba0000000000000000bb000000000000001d000000000000002001000000000000 *00bc000000000000001d00000000000000200300000000000000bd000000000000001d00000000 *000000ba0000000000000000be000000000000001d00000000000000bf0000000000000000c000 *0000000000001d00000000000000bf0000000000000000c1000000000000001d00000000000000 *c20000000000000000c3000000000000001d00000000000000c20000000000000000c400000000 *0000001d00000000000000c20000000000000000c5000000000000001d00000000000000c20000 *000000000000c6000000000000001d00000000000000c70000000000000000c800000000000000 *1d00000000000000c20300000000000000c9000000000000001d00000000000000c20300000000 *000000ca000000000000001d00000000000000c70300000000000000cb000000000000001d0000 *0000000000cc0300000000000000cd000000000000001d00000000000000cc0000000000000000 *ce000000000000001d00000000000000cf0000000000000000d0000000000000001d0000000000 *0000cc0000000000000000d1000000000000001d00000000000000cc0000000000000000d20000 *00000000001d00000000000000cc0000000000000000d3000000000000001d00000000000000cc *0000000000000000d4000000000000001d00000000000000cc0000000000000000d50000000000 *00001d00000000000000cc0000000000000000d6000000000000001d00000000000000cc000000 *0000000000d7000000000000001d00000000000000cc0000000000000000d8000000000000001d *00000000000000cc0000000000000000d9000000000000001d00000000000000cc000000000000 *0000da000000000000001d00000000000000cc0000000000000000db000000000000001d000000 *00000000cc0000000000000000dc000000000000001d00000000000000cc0000000000000000dd *000000000000001d00000000000000cc0000000000000000de000000000000001d000000000000 *00cc0000000000000000df000000000000001d00000000000000cc0000000000000000e0000000 *000000001d00000000000000cc0000000000000000e1000000000000001d00000000000000cc00 *00000000000000e2000000000000001d00000000000000cc0000000000000000e3000000000000 *001d00000000000000cc000000000000000081000000000000001d00000000000000cc00000000 *00000000e4000000000000001d00000000000000cc0000000000000000e5000000000000001d00 *000000000000cc0000000000000000e6000000000000001d00000000000000cc00000000000000 *0080000000000000001d00000000000000cc0000000000000000e7000000000000001d00000000 *000000cc0000000000000000e8000000000000001d00000000000000cc0000000000000000e900 *0000000000001d00000000000000cc0000000000000000ea000000000000001d00000000000000 *cc0000000000000000eb000000000000001d00000000000000cc0000000000000000ec00000000 *0000001d00000000000000c20000000000000000ed00000000000000ee00000000000000ef0000 *000000000000f000000000000000ee00000000000000ef0000000000000000f100000000000000 *ee00000000000000ef0000000000000000f200000000000000ee00000000000000ef0000000000 *000000f300000000000000ee00000000000000ef0000000000000000f400000000000000ee0000 *0000000000ef0100000000000000f500000000000000ee00000000000000ef0300000000000000 *f500000000000000ee00000000000000ef0000000000000000f600000000000000ee0000000000 *0000ef0100000000000000f700000000000000ee00000000000000ef0300000000000000f70000 *0000000000ee00000000000000f80000000000000000f900000000000000ee00000000000000f8 *0300000000000000fa00000000000000ee00000000000000f80000000000000000fb0000000000 *0000ee00000000000000f80300000000000000fc00000000000000ee00000000000000fd000000 *0000000000fe00000000000000ee00000000000000fd0000000000000000ff00000000000000ee *00000000000000fd00000000000000010000000000000000ee00000000000000fd000000000000 *00010100000000000000ee00000000000000fd00000000000000010200000000000000ee000000 *00000000fd03000000000000010300000000000000ee00000000000001040000000000000000f0 *00000000000000ee00000000000001040000000000000000f100000000000000ee000000000000 *01040000000000000000f200000000000000ee00000000000001040000000000000000f3000000 *00000000ee00000000000001040000000000000000f400000000000000ee000000000000010401 *00000000000000f500000000000000ee00000000000001040300000000000000f5000000000000 *00ee00000000000001040000000000000000f600000000000000ee000000000000010401000000 *00000000f700000000000000ee00000000000001040300000000000000f7000000000000010500 *00000000000106030000000000000107000000000000001d000000000000010800000000000000 *0109000000000000001d000000000000010800000000000000010a000000000000001d00000000 *0000010800000000000000010b000000000000001d000000000000010c00000000000000010d00 *0000000000001d000000000000010c00000000000000010e000000000000001d00000000000001 *0c00000000000000010f000000000000001d000000000000010c03000000000000011000000000 *0000001d0000000000000111000000000000000112000000000000001d00000000000001110000 *00000000000113000000000000001d000000000000011100000000000000011400000000000000 *1d0000000000000111000000000000000115000000000000001d00000000000001110000000000 *00000116000000000000001d0000000000000111000000000000000117000000000000001d0000 *000000000111000000000000000118000000000000001d00000000000001110000000000000001 *19000000000000001d000000000000011100000000000000011a000000000000001d0000000000 *00011100000000000000011b000000000000001d000000000000011100000000000000011c0000 *00000000001d000000000000011103000000000000011d000000000000001d0000000000000111 *03000000000000011e000000000000011f00000000000001200300000000000001210000000000 *00011f0000000000000122000000000000000123000000000000011f0000000000000122000000 *000000000124000000000000011f0000000000000122000000000000000125000000000000011f *0000000000000122000000000000000126000000000000011f0000000000000122000000000000 *000127000000000000011f0000000000000122000000000000000128000000000000011f000000 *0000000122000000000000000129000000000000011f000000000000012203000000000000012a *000000000000011f000000000000012b00000000000000012c000000000000011f000000000000 *012b00000000000000012d000000000000011f000000000000012b00000000000000012e000000 *000000011f000000000000012b00000000000000012f000000000000011f000000000000012b00 *0000000000000130000000000000011f000000000000012b000000000000000131000000000000 *011f000000000000012b000000000000000132000000000000011f000000000000012b00000000 *0000000133000000000000011f000000000000012b000000000000000134000000000000011f00 *0000000000012b000000000000000135000000000000011f000000000000012b00000000000000 *0136000000000000011f000000000000012b030000000000000137000000000000011f00000000 *00000138000000000000000139000000000000001d000000000000013a00000000000000010b00 *0000000000001d000000000000013a00000000000000010a000000000000001d00000000000001 *3a00000000000000010f000000000000001d000000000000013a00000000000000013b00000000 *0000001d000000000000013a00000000000000013c000000000000001d000000000000013a0000 *0000000000010e000000000000001d000000000000013a00000000000000010d00000000000000 *1d000000000000013a03000000000000011000000000000000ee000000000000013d0000000000 *0000013e00000000000000ee000000000000013d00000000000000013f00000000000000ee0000 *00000000013d00000000000000014000000000000000ee000000000000013d0000000000000001 *4100000000000000ee000000000000013d00000000000000014200000000000000ee0000000000 *00013d00000000000000014300000000000000ee000000000000013d0000000000000001440000 *0000000000ee000000000000013d00000000000000014500000000000000ee000000000000013d *00000000000000014600000000000000ee000000000000013d0100000000000001470000000000 *0000ee000000000000013d03000000000000014700000000000000ee000000000000013d000000 *00000000014800000000000000ee000000000000013d01000000000000014900000000000000ee *000000000000013d03000000000000014900000000000000ee000000000000014a000000000000 *00014b00000000000000ee000000000000014a00000000000000014c00000000000000ee000000 *000000014a00000000000000014d00000000000000ee000000000000014a00000000000000014e *00000000000000ee000000000000014a03000000000000014f00000000000000ee000000000000 *015000000000000000013e00000000000000ee000000000000015000000000000000013f000000 *00000000ee000000000000015000000000000000014000000000000000ee000000000000015000 *000000000000014100000000000000ee0000000000000150000000000000000142000000000000 *00ee000000000000015000000000000000014300000000000000ee000000000000015000000000 *000000014400000000000000ee000000000000015000000000000000014500000000000000ee00 *0000000000015000000000000000014600000000000000ee000000000000015001000000000000 *014700000000000000ee000000000000015003000000000000014700000000000000ee00000000 *0000015000000000000000014800000000000000ee000000000000015001000000000000014900 *000000000000ee000000000000015003000000000000014900000000000000ee00000000000001 *5100000000000000015200000000000000ee000000000000015100000000000000015300000000 *000000ee000000000000015100000000000000015400000000000000ee00000000000001510000 *0000000000015500000000000000ee000000000000015100000000000000015600000000000000 *ee000000000000015100000000000000015700000000000000ee00000000000001510000000000 *0000015800000000000000ee000000000000015100000000000000015900000000000000ee0000 *00000000015100000000000000015a00000000000000ee00000000000001510100000000000001 *5b00000000000000ee000000000000015103000000000000015b00000000000000ee0000000000 *00015100000000000000015c00000000000000ee000000000000015101000000000000015d0000 *0000000000ee000000000000015103000000000000015d00000000000000ee000000000000015e *03000000000000015f00000000000000ee00000000000001600000000000000001610000000000 *0000ee000000000000016000000000000000016200000000000000ee0000000000000160000000 *00000000016300000000000000ee000000000000016003000000000000016400000000000000ee *000000000000016500000000000000015200000000000000ee0000000000000165000000000000 *00015300000000000000ee000000000000016500000000000000015400000000000000ee000000 *000000016500000000000000015500000000000000ee0000000000000165000000000000000156 *00000000000000ee000000000000016500000000000000015700000000000000ee000000000000 *016500000000000000015800000000000000ee0000000000000165000000000000000159000000 *00000000ee000000000000016500000000000000015a00000000000000ee000000000000016501 *000000000000015b00000000000000ee000000000000016503000000000000015b000000000000 *00ee000000000000016500000000000000015c00000000000000ee000000000000016501000000 *000000015d00000000000000ee000000000000016503000000000000015d00000000000000ee00 *0000000000016600000000000000016700000000000000ee000000000000016600000000000000 *016800000000000000ee000000000000016600000000000000016900000000000000ee00000000 *0000016600000000000000016a00000000000000ee000000000000016600000000000000016b00 *000000000000ee000000000000016601000000000000016c00000000000000ee00000000000001 *6603000000000000016c00000000000000ee000000000000016600000000000000016d00000000 *000000ee000000000000016601000000000000016e00000000000000ee00000000000001660300 *0000000000016e000000000000001d000000000000016f00000000000000017000000000000000 *1d0000000000000108030000000000000171000000000000001d00000000000001080300000000 *00000172000000000000001d000000000000016f000000000000000173000000000000001d0000 *000000000108030000000000000174000000000000001d000000000000016f0000000000000001 *75000000000000001d000000000000016f000000000000000176000000000000001d0000000000 *00016f000000000000000177000000000000001d000000000000016f0000000000000001780000 *00000000001d000000000000016f000000000000000179000000000000001d000000000000016f *00000000000000017a000000000000001d000000000000016f00000000000000017b0000000000 *00001d000000000000016f00000000000000017c000000000000001d000000000000016f000000 *00000000017d000000000000001d000000000000016f00000000000000017e000000000000001d *000000000000016f00000000000000017f000000000000001d000000000000016f000000000000 *000180000000000000001d000000000000016f000000000000000181000000000000001d000000 *000000016f000000000000000182000000000000001d000000000000016f000000000000000183 *000000000000001d000000000000016f000000000000000184000000000000001d000000000000 *016f000000000000000185000000000000001d000000000000016f000000000000000186000000 *000000001d000000000000016f000000000000000187000000000000001d000000000000018800 *0000000000000189000000000000001d000000000000018800000000000000018a000000000000 *001d000000000000018800000000000000018b000000000000001d000000000000018800000000 *000000018c000000000000001d000000000000018800000000000000018d000000000000001d00 *0000000000018800000000000000018e000000000000001d000000000000018800000000000000 *018f000000000000001d0000000000000188000000000000000190000000000000001d00000000 *00000188000000000000000191000000000000001d000000000000018800000000000000019200 *0000000000001d0000000000000193000000000000000194000000000000001d00000000000001 *93000000000000000195000000000000001d000000000000019300000000000000019600000000 *0000001d0000000000000193000000000000000197000000000000001d00000000000001930000 *00000000000198000000000000001d000000000000019300000000000000019900000000000000 *1d000000000000019300000000000000019a000000000000001d00000000000001930000000000 *0000019b000000000000001d000000000000019300000000000000019c000000000000001d0000 *00000000019300000000000000019d000000000000001d00000000000001930000000000000001 *9e000000000000001d000000000000019300000000000000019f000000000000001d0000000000 *0001930000000000000001a0000000000000001d00000000000001930000000000000001a10000 *00000000001d00000000000001930000000000000001a2000000000000001d0000000000000193 *0000000000000001a3000000000000001d00000000000001930000000000000001a40000000000 *00001d00000000000001930000000000000001a5000000000000001d0000000000000193000000 *0000000001a6000000000000001d00000000000001930000000000000001a7000000000000001d *00000000000001930000000000000001a8000000000000001d0000000000000193000000000000 *0001a9000000000000001d00000000000001930000000000000001aa000000000000001d000000 *00000001930000000000000001ab000000000000001d00000000000001930000000000000001ac *000000000000001d00000000000001930300000000000001ad000000000000001d000000000000 *01930100000000000001ae000000000000001d00000000000001930100000000000001af000000 *000000001d00000000000001930100000000000001b0000000000000001d000000000000019303 *00000000000001b1000000000000001d00000000000001930000000000000001b2000000000000 *001d00000000000001930000000000000001b3000000000000001d000000000000019300000000 *00000001b4000000000000001d00000000000001080100000000000001b5000000000000001d00 *000000000001080100000000000001b6000000000000001d000000000000010801000000000000 *01b7000000000000001d00000000000001080300000000000001b8000000000000001d00000000 *000001080100000000000001b9000000000000001d00000000000001080100000000000001ba00 *0000000000001d00000000000001080100000000000001bb000000000000001d00000000000001 *080100000000000001bc000000000000001d00000000000001080300000000000001bd00000000 *000000ee00000000000001be0000000000000001bf00000000000000ee00000000000001be0100 *000000000001c000000000000000ee00000000000001be0300000000000001c000000000000000 *1d00000000000001c10300000000000001c2000000000000001d00000000000001c10100000000 *000001c3000000000000001d00000000000001c10100000000000001c400000000000001c50000 *0000000001c60300000000000001c700000000000001c500000000000001c60000000000000001 *c800000000000001c500000000000001c60100000000000001c700000000000000ee0000000000 *0001c90000000000000001ca00000000000000ee00000000000001c90000000000000001cb0000 *0000000000ee00000000000001c90000000000000001cc00000000000000ee00000000000001c9 *0000000000000001cd00000000000000ee00000000000001c90000000000000001ce0000000000 *0000ee00000000000001c90100000000000001cf00000000000000ee00000000000001c9030000 *0000000001cf00000000000000ee00000000000001c90000000000000001d000000000000000ee *00000000000001c90100000000000001d100000000000000ee00000000000001c9030000000000 *0001d100000000000000ee00000000000001d20000000000000001d300000000000000ee000000 *00000001d20300000000000001d4000000000000001d00000000000001d50300000000000001d6 *000000000000001d00000000000000300300000000000001d7000000000000001d000000000000 *01d80000000000000001d9000000000000001d00000000000001d80000000000000001da000000 *000000001d00000000000001d80000000000000001db000000000000001d00000000000001d803 *00000000000001dc000000000000001d00000000000001d80000000000000001dd000000000000 *001d00000000000001d80000000000000001de000000000000001d00000000000001d803000000 *00000001df00000000000001e0000000000000000d6d6f6e6f6964732d302e312e320000000000 *000013446174612e4d6f6e6f69642e526564756365720000000000000018446174612e4d6f6e6f *69642e526564756365722e436861720000000000000018446174612e4d6f6e6f69642e52656475 *6365722e576974680000000000000010446174612e4d6f6e6f69642e556e697400000000000000 *0f446174612e4d6f6e6f69642e4f72640000000000000011446174612e4d6f6e6f69642e4d6f6e *6164000000000000000f446174612e4d6f6e6f69642e4d61700000000000000020446174612e4d *6f6e6f69642e4c65786963616c2e555446382e4465636f6465720000000000000022446174612e *4d6f6e6f69642e4c65786963616c2e536f75726365506f736974696f6e00000000000000124461 *74612e4d6f6e6f69642e496e744d61700000000000000015446174612e4d6f6e6f69642e47656e *657261746f720000000000000019446174612e4d6f6e6f69642e4c65786963616c2e576f726473 *0000000000000019446174612e4d6f6e6f69642e526564756365722e5375676172000000000000 *0016446174612e4d6f6e6f69642e46726f6d537472696e670000000000000017446174612e4d6f *6e6f69642e43617465676f726963616c0000000000000017446174612e4d6f6e6f69642e417070 *6c696361746976650000000000000021446174612e4d6f6e6f69642e47656e657261746f722e43 *6f6d62696e61746f72730000000000000014446174612e4d6f6e6f69642e416464697469766500 *0000000000001a446174612e4d6f6e6f69642e41646469746976652e5375676172000000000000 *001a446174612e4d6f6e6f69642e4d756c7469706c696361746976650000000000000020446174 *612e4d6f6e6f69642e4d756c7469706c696361746976652e537567617200000000000000264461 *74612e4d6f6e6f69642e4d756c7469706c696361746976652e5472616e73666f726d6572000000 *0000000013446174612e52696e672e53656d692e4e656172000000000000000e446174612e5269 *6e672e53656d690000000000000012446174612e52696e672e53656d692e4f7264000000000000 *000a446174612e47726f75700000000000000010446174612e47726f75702e5375676172000000 *0000000011446174612e52696e672e46726f6d4e756d0000000000000004626173650000000000 *00000b446174612e4d6f6e6f69640000000000000008446174612e4f7264000000000000000a44 *6174612e4d6179626500000000000000075072656c756465000000000000001f446174612e4d6f *6e6f69642e4d6f6e61642e5772697465722e537472696374000000000000001d446174612e4d6f *6e6f69642e4d6f6e61642e5772697465722e4c617a79000000000000001b446174612e4d6f6e6f *69642e4d6f6e61642e53542e5374726963740000000000000015446174612e4d6f6e6f69642e4d *6f6e61642e53544d0000000000000019446174612e4d6f6e6f69642e4d6f6e61642e53542e4c61 *7a79000000000000001e446174612e4d6f6e6f69642e4d6f6e61642e53746174652e5374726963 *74000000000000001c446174612e4d6f6e6f69642e4d6f6e61642e53746174652e4c617a790000 *00000000001c446174612e4d6f6e6f69642e4d6f6e61642e5257532e5374726963740000000000 *00001a446174612e4d6f6e6f69642e4d6f6e61642e5257532e4c617a7900000000000000184461 *74612e4d6f6e6f69642e4d6f6e61642e5265616465720000000000000014446174612e4d6f6e6f *69642e4d6f6e61642e494f000000000000001a446174612e4d6f6e6f69642e4d6f6e61642e4964 *656e746974790000000000000018446174612e4d6f6e6f69642e4d6f6e61642e45697468657200 *00000000000016446174612e4d6f6e6f69642e4d6f6e61642e436f6e740000000000000010436f *6e74726f6c2e43617465676f7279000000000000000f446174612e52696e672e53756761720000 *000000000009446174612e52696e67000000000000000752656475636572000000000000000475 *6e69740000000000000004736e6f630000000000000004636f6e73000000000000000d666f6c64 *4d6170526564756365000000000000000a666f6c64526564756365000000000000000b43686172 *52656475636572000000000000000866726f6d43686172000000000000000b696e76616c696443 *686172000000000000000b5769746852656475636572000000000000000e72756e576974685265 *6475636572000000000000000e776974686f7574526564756365720000000000000004556e6974 *0000000000000007676574556e6974000000000000000b4d696e5072696f726974790000000000 *00000e6765744d696e5072696f72697479000000000000000b4d61785072696f72697479000000 *000000000e6765744d61785072696f7269747900000000000000034d696e000000000000000667 *65744d696e00000000000000034d617800000000000000066765744d6178000000000000000a41 *6374696f6e57697468000000000000000d676574416374696f6e5769746800000000000000084d *6f6e616453756d000000000000000b6765744d6f6e616453756d0000000000000006416374696f *6e0000000000000009676574416374696f6e0000000000000009556e696f6e5769746800000000 *0000000c676574556e696f6e57697468000000000000000455544638000000000000000772756e *55544638000000000000000e536f75726365506f736974696f6e000000000000000c536f757263 *65436f6c756d6e000000000000000a536f757263654c696e65000000000000000b73746172744f *6646696c65000000000000000c736f75726365436f6c756d6e000000000000000a736f75726365 *4c696e65000000000000001273686f77536f75726365506f736974696f6e000000000000000656 *616c756573000000000000000967657456616c75657300000000000000044b6579730000000000 *0000076765744b6579730000000000000005436861723800000000000000086765744368617238 *000000000000000947656e657261746f720000000000000004456c656d00000000000000096d61 *7052656475636500000000000000056d6170546f00000000000000076d617046726f6d00000000 *000000067265647563650000000000000007556e6c696e6564000000000000000a72756e556e6c *696e65640000000000000008556e737061636564000000000000000b72756e556e737061636564 *00000000000000054c696e65730000000000000005576f726473000000000000000872756e576f *726473000000000000000872756e4c696e65730000000000000009776f72647346726f6d000000 *00000000096c696e657346726f6d000000000000000b66726f6d496e7465676572000000000000 *000a66726f6d537472696e67000000000000000a46726f6d537472696e67000000000000000d67 *657446726f6d537472696e6700000000000000034d6f6e0000000000000004456e646f00000000 *00000007676574456e646f000000000000000672756e4d6f6e000000000000000d547261766572 *73616c57697468000000000000001067657454726176657273616c576974680000000000000009 *416c7465726e617465000000000000000c676574416c7465726e61746500000000000000095472 *6176657273616c000000000000000c67657454726176657273616c000000000000000974726176 *657273655f0000000000000004666f725f00000000000000056d61704d5f000000000000000566 *6f724d5f0000000000000008666f6c644d6170270000000000000009636f6e6361744d61700000 *000000000003616e6400000000000000026f720000000000000003616e79000000000000000361 *6c6c000000000000000373756d000000000000000770726f647563740000000000000004656c65 *6d00000000000000076e6f74456c656d000000000000000666696c746572000000000000000466 *696e640000000000000004706c757300000000000000047a65726f00000000000000012b000000 *00000000144d756c7469706c696361746976654d6f6e6f696400000000000000036f6e65000000 *000000000574696d657300000000000000012a0000000000000003457870000000000000000667 *657445787000000000000000034c6f6700000000000000066765744c6f67000000000000000c53 *656d696e65617272696e67000000000000000853656d6972696e6700000000000000085072696f *7269747900000000000000084d6178426f756e6400000000000000084d696e426f756e64000000 *00000000054f7264657200000000000000086765744f72646572000000000000000547726f7570 *0000000000000007676e656761746500000000000000056d696e757300000000000000012d0000 *0000000000066e6567617465000000000000000746726f6d4e756d000000000000000a67657446 *726f6d4e756d00000000000000076d617070656e6400000000000000076d636f6e636174000000 *00000000066d656d70747900000000000000064d6f6e6f69640000000000000007676574447561 *6c00000000000000044475616c0000000000000007617070456e646f0000000000000006676574 *416c6c0000000000000003416c6c0000000000000006676574416e790000000000000003416e79 *000000000000000667657453756d000000000000000353756d000000000000000a67657450726f *64756374000000000000000750726f647563740000000000000008676574466972737400000000 *00000005466972737400000000000000076765744c61737400000000000000044c617374000000 *000000000b4748432e436c617373657300000000000000036d696e00000000000000074e6f7468 *696e6700000000000000054d6179626500000000000000036d617800000000000000084748432e *456e756d00000000000000086d6178426f756e6400000000000000086d696e426f756e64000000 *00000000084748432e4261736500000000000000046661696c00000000000000033e3e3d000000 *00000000023e3e000000000000000672657475726e0000000000000011436f6e74726f6c2e4d6f *6e61642e46697800000000000000046d66697800000000000000054d6f6e616400000000000000 *0746756e63746f7200000000000000084d6f6e6164466978000000000000000d436f6e74726f6c *2e4d6f6e616400000000000000094d6f6e6164506c75730000000000000005666f6c644d000000 *000000000d446174612e46756e6374696f6e000000000000000366697800000000000000026170 *00000000000000066c6966744d3500000000000000066c6966744d3400000000000000066c6966 *744d3300000000000000066c6966744d3200000000000000056c6966744d000000000000000675 *6e6c65737300000000000000047768656e000000000000000b7265706c69636174654d5f000000 *000000000a7265706c69636174654d0000000000000006666f6c644d5f00000000000000097a69 *70576974684d5f00000000000000087a6970576974684d000000000000000c6d6170416e64556e *7a69704d00000000000000046a6f696e0000000000000007666f72657665720000000000000003 *3c3d3c00000000000000033e3d3e00000000000000046d73756d0000000000000004666f724d00 *0000000000000766696c7465724d0000000000000005677561726400000000000000046d61704d *000000000000000973657175656e63655f000000000000000873657175656e6365000000000000 *00033d3c3c00000000000000056d706c757300000000000000056d7a65726f0000000000000004 *666d6170000000000000000b6d746c2d312e312e302e32000000000000001b436f6e74726f6c2e *4d6f6e61642e5772697465722e537472696374000000000000000a6d6170577269746572540000 *00000000000b657865635772697465725400000000000000096d61705772697465720000000000 *00000a65786563577269746572000000000000000972756e577269746572000000000000000657 *7269746572000000000000000a72756e5772697465725400000000000000075772697465725400 *00000000000013436f6e74726f6c2e4d6f6e61642e5472616e7300000000000000046c69667400 *0000000000000a4d6f6e61645472616e7300000000000000066c696674494f0000000000000007 *4d6f6e6164494f000000000000001a436f6e74726f6c2e4d6f6e61642e5772697465722e436c61 *7373000000000000000663656e736f7200000000000000076c697374656e730000000000000004 *7061737300000000000000066c697374656e000000000000000474656c6c000000000000000b4d *6f6e61645772697465720000000000000019436f6e74726f6c2e4d6f6e61642e5772697465722e *4c617a7900000000000000086768632d7072696d00000000000000084748432e5072696d000000 *00000000095265616c576f726c64000000000000000a4748432e494f4261736500000000000000 *0c756e736166655354546f494f000000000000000c756e73616665494f546f5354000000000000 *00067374546f494f00000000000000064748432e5354000000000000000572756e535400000000 *0000000566697853540000000000000012756e73616665496e7465726c65617665535400000000 *00000002535400000000000000084748432e436f6e63000000000000000d726567697374657244 *656c61790000000000000009777269746554566172000000000000000872656164545661720000 *0000000000096e657754566172494f00000000000000076e657754566172000000000000000661 *6c77617973000000000000000e616c776179735375636365656473000000000000000863617463 *6853544d00000000000000066f72456c736500000000000000057265747279000000000000000a *61746f6d6963616c6c79000000000000000353544d000000000000000454566172000000000000 *000b73746d2d322e312e312e32000000000000001d436f6e74726f6c2e436f6e63757272656e74 *2e53544d2e5441727261790000000000000006544172726179000000000000001c436f6e74726f *6c2e436f6e63757272656e742e53544d2e544368616e000000000000000c6973456d7074795443 *68616e000000000000000a756e476574544368616e0000000000000008647570544368616e0000 *00000000000972656164544368616e000000000000000a7772697465544368616e000000000000 *000a6e6577544368616e494f00000000000000086e6577544368616e0000000000000005544368 *616e000000000000001c436f6e74726f6c2e436f6e63757272656e742e53544d2e544d56617200 *0000000000000c6973456d707479544d566172000000000000000973776170544d566172000000 *000000000972656164544d566172000000000000000b747279507574544d566172000000000000 *0008707574544d566172000000000000000c74727954616b65544d566172000000000000000974 *616b65544d566172000000000000000f6e6577456d707479544d566172494f000000000000000d *6e6577456d707479544d566172000000000000000a6e6577544d566172494f0000000000000008 *6e6577544d5661720000000000000005544d5661720000000000000011436f6e74726f6c2e4d6f *6e61642e53544d0000000000000005636865636b0000000000000015436f6e74726f6c2e4d6f6e *61642e53542e4c617a79000000000000000e6c617a79546f537472696374535400000000000000 *0e737472696374546f4c617a795354000000000000001a436f6e74726f6c2e4d6f6e61642e5374 *6174652e537472696374000000000000000a7769746853746174655400000000000000096d6170 *537461746554000000000000000a65786563537461746554000000000000000a6576616c537461 *746554000000000000000977697468537461746500000000000000086d61705374617465000000 *000000000965786563537461746500000000000000096576616c53746174650000000000000008 *72756e537461746500000000000000055374617465000000000000000972756e53746174655400 *000000000000065374617465540000000000000019436f6e74726f6c2e4d6f6e61642e53746174 *652e436c61737300000000000000046765747300000000000000066d6f64696679000000000000 *00037075740000000000000003676574000000000000000a4d6f6e616453746174650000000000 *000018436f6e74726f6c2e4d6f6e61642e53746174652e4c617a790000000000000018436f6e74 *726f6c2e4d6f6e61642e5257532e53747269637400000000000000087769746852575354000000 *00000000076d617052575354000000000000000865786563525753540000000000000008657661 *6c5257535400000000000000077769746852575300000000000000066d61705257530000000000 *0000076578656352575300000000000000076576616c525753000000000000000672756e525753 *0000000000000003525753000000000000000772756e5257535400000000000000045257535400 *00000000000017436f6e74726f6c2e4d6f6e61642e5257532e436c61737300000000000000084d *6f6e6164525753000000000000001a436f6e74726f6c2e4d6f6e61642e5265616465722e436c61 *7373000000000000000461736b7300000000000000056c6f63616c000000000000000361736b00 *0000000000000b4d6f6e61645265616465720000000000000016436f6e74726f6c2e4d6f6e6164 *2e5257532e4c617a790000000000000014436f6e74726f6c2e4d6f6e61642e5265616465720000 *00000000000b7769746852656164657254000000000000000a6d61705265616465725400000000 *0000000a7769746852656164657200000000000000096d61705265616465720000000000000009 *72756e5265616465720000000000000006526561646572000000000000000a72756e5265616465 *7254000000000000000752656164657254000000000000000953797374656d2e494f0000000000 *0000057072696e740000000000000002494f000000000000000846696c65506174680000000000 *0000087265616446696c65000000000000000648616e646c6500000000000000126f70656e4269 *6e61727954656d7046696c65000000000000000c6f70656e54656d7046696c6500000000000000 *05666978494f000000000000000e7769746842696e61727946696c650000000000000008776974 *6846696c650000000000000006685072696e740000000000000009685075745374724c6e000000 *0000000006685265616479000000000000000672656164494f0000000000000006726561644c6e *000000000000000a617070656e6446696c650000000000000009777269746546696c6500000000 *00000008696e746572616374000000000000000b676574436f6e74656e74730000000000000007 *6765744c696e6500000000000000076765744368617200000000000000087075745374724c6e00 *000000000000067075745374720000000000000007707574436861720000000000000006474843 *2e494f0000000000000012684765744275664e6f6e426c6f636b696e6700000000000000076847 *65744275660000000000000012685075744275664e6f6e426c6f636b696e670000000000000007 *685075744275660000000000000007685075745374720000000000000008685075744368617200 *0000000000000c68476574436f6e74656e74730000000000000008684765744c696e6500000000 *000000086847657443686172000000000000000d6857616974466f72496e707574000000000000 *000a4748432e48616e646c6500000000000000056853686f77000000000000000e685365744269 *6e6172794d6f646500000000000000116849735465726d696e616c446576696365000000000000 *0008684765744563686f0000000000000008685365744563686f000000000000000b6849735365 *656b61626c65000000000000000d68476574427566666572696e67000000000000000b68497357 *72697461626c65000000000000000b6849735265616461626c650000000000000009684973436c *6f73656400000000000000076849734f70656e00000000000000056854656c6c00000000000000 *05685365656b000000000000000868536574506f736e000000000000000868476574506f736e00 *0000000000000d68536574427566666572696e67000000000000000a684c6f6f6b416865616400 *000000000000056973454f460000000000000006684973454f46000000000000000c6853657446 *696c6553697a6500000000000000096846696c6553697a65000000000000000668436c6f736500 *0000000000000e6f70656e42696e61727946696c6500000000000000086f70656e46696c650000 *000000000005737464696e000000000000000a48616e646c65506f736e000000000000000c4162 *736f6c7574655365656b000000000000000c52656c61746976655365656b000000000000000b53 *65656b46726f6d456e6400000000000000085365656b4d6f646500000000000000067374646f75 *740000000000000006737464657272000000000000000668466c757368000000000000000b4e6f *427566666572696e67000000000000000d4c696e65427566666572696e67000000000000000e42 *6c6f636b427566666572696e67000000000000000a4275666665724d6f64650000000000000008 *526561644d6f6465000000000000000957726974654d6f6465000000000000000a417070656e64 *4d6f6465000000000000000d5265616457726974654d6f64650000000000000006494f4d6f6465 *0000000000000016436f6e74726f6c2e4d6f6e61642e4964656e74697479000000000000000b72 *756e4964656e7469747900000000000000084964656e74697479000000000000000b446174612e *456974686572000000000000000645697468657200000000000000044c65667400000000000000 *055269676874000000000000001663617465676f72792d6578747261732d302e35332e35000000 *0000000014436f6e74726f6c2e4d6f6e61642e4569746865720000000000000007456974686572 *54000000000000000a72756e456974686572540000000000000012436f6e74726f6c2e4d6f6e61 *642e436f6e74000000000000000977697468436f6e745400000000000000086d6170436f6e7454 *000000000000000877697468436f6e7400000000000000076d6170436f6e740000000000000007 *72756e436f6e740000000000000004436f6e74000000000000000872756e436f6e745400000000 *00000005436f6e74540000000000000018436f6e74726f6c2e4d6f6e61642e436f6e742e436c61 *7373000000000000000663616c6c434300000000000000094d6f6e6164436f6e74000000000000 *000b446174612e537472696e6700000000000000084973537472696e6700000000000000084361 *7465676f72790000000000000013436f6e74726f6c2e4170706c69636174697665000000000000 *00066c696674413200000000000000022a3e000000000000000470757265000000000000000b41 *70706c6963617469766500000000000000033c7c3e0000000000000005656d7074790000000000 *00000b416c7465726e6174697665 newhex * rmfile ./dist/doc/html/monoids/monoids.haddock binary ./dist/doc/html/monoids/plus.gif oldhex *47494638396109000900910000fefefe8282820202020000002c00000000090009000002148c8f *a00bb6b29c82ca897b5b7871cfce74085200003b newhex * rmfile ./dist/doc/html/monoids/plus.gif hunk ./dist/doc/html/monoids/src/Data-Group-Sugar.html 1 - - - - -Data/Group/Sugar.hs - - - -
module Data.Group.Sugar 
-    ( module Data.Monoid.Additive.Sugar
-    , module Data.Group
-    , (-)
-    , negate
-    ) where
-
-import Data.Monoid.Additive.Sugar
-import Data.Group
-import Prelude hiding ((-), negate)
-
-infixl 7 -
-
-(-) :: Group g => g -> g -> g
-(-) = minus
-
-negate :: Group g => g -> g
-negate = gnegate
-
- rmfile ./dist/doc/html/monoids/src/Data-Group-Sugar.html hunk ./dist/doc/html/monoids/src/Data-Group.html 1 - - - - -Data/Group.hs - - - -
module Data.Group 
-    ( module Data.Monoid.Additive
-    , Group
-    , gnegate
-    , minus
-    ) where
-
-import Data.Monoid.Additive
-import Data.Monoid.Monad.Identity
-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 (Identity a) where
-    gnegate = Identity . gnegate . runIdentity
-    Identity a `minus` Identity b = Identity (a `minus` b)
-
-instance Group a => Group (FromString a) where
-    gnegate = FromString . gnegate . getFromString
-    FromString a `minus` FromString b = FromString (a `minus` b)
-
- rmfile ./dist/doc/html/monoids/src/Data-Group.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Additive-Sugar.html 1 - - - - -Data/Monoid/Additive/Sugar.hs - - - -
module Data.Monoid.Additive.Sugar 
-    ( module Data.Monoid.Additive
-    , (+)
-    ) where
-
-import Data.Monoid.Additive
-import Prelude hiding ((+))
-
-infixl 6 + 
-
-(+) :: Monoid m => m -> m -> m 
-(+) = mappend
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Additive-Sugar.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Additive.html 1 - - - - -Data/Monoid/Additive.hs - - - -
module Data.Monoid.Additive
-    ( module Data.Monoid 
-    , plus
-    , zero
-    ) where
-
-import Data.Monoid
-
-infixl 6 `plus`
-
-plus :: Monoid m => m -> m -> m 
-plus = mappend
-
-zero :: Monoid m => m 
-zero = mempty
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Additive.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Applicative.html 1 - - - - -Data/Monoid/Applicative.hs - - - -
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, GeneralizedNewtypeDeriving, FlexibleContexts #-}
-module Data.Monoid.Applicative 
-    ( module Control.Applicative
-    , module Data.Monoid.Reducer
-    , Traversal(Traversal,getTraversal)
-    , Alternate(Alternate,getAlternate)
-    , TraversalWith(TraversalWith,getTraversalWith)
-    ) where
-
-import Control.Functor.Pointed (Pointed, point)
-import Control.Applicative (Applicative, (*>), pure, Alternative, empty, (<|>), liftA2)
-import Data.Monoid.Reducer
-
-newtype Traversal f = Traversal { getTraversal :: f () } 
-
-instance Applicative f => Monoid (Traversal f) where
-    mempty = Traversal (pure ())
-    Traversal a `mappend` Traversal b = Traversal (a *> b)
-
-instance Applicative f => Reducer (f a) (Traversal f) where
-    unit a = Traversal (a *> pure ())
-    a `cons` Traversal b = Traversal (a *> b)
-    Traversal a `snoc` b = Traversal (a *> b *> pure ())
-
-
-{-# RULES "unitTraversal" unit = Traversal #-}
-{-# RULES "snocTraversal" snoc = snocTraversal #-}
-snocTraversal :: Reducer (f ()) (Traversal f) => Traversal f -> f () -> Traversal f
-snocTraversal a = mappend a . Traversal
-
-newtype Alternate f a = Alternate { getAlternate :: f a } 
-    deriving (Eq,Ord,Show,Read,Functor,Applicative,Alternative)
-
-instance Alternative f => Monoid (Alternate f a) where
-    mempty = empty 
-    Alternate a `mappend` Alternate b = Alternate (a <|> b) 
-
-instance Alternative f => Reducer (f a) (Alternate f a) where
-    unit = Alternate
-    a `cons` Alternate b = Alternate (a <|> b) 
-    Alternate a `snoc` b = Alternate (a <|> b)
-
-instance Pointed f => Pointed (Alternate f) where
-    point = Alternate . point
-
-newtype TraversalWith f n = TraversalWith { getTraversalWith :: f n }
-
-instance (Applicative f, Monoid n) => Monoid (TraversalWith f n) where
-    mempty = TraversalWith (pure mempty)
-    TraversalWith a `mappend` TraversalWith b = TraversalWith (liftA2 mappend a b)
-
-instance (Applicative f, Monoid n) => Reducer (f n) (TraversalWith f n) where
-    unit = TraversalWith
-
-instance Functor f => Functor (TraversalWith f) where
-    fmap f = TraversalWith . fmap f . getTraversalWith
-
-instance Pointed f => Pointed (TraversalWith f) where
-    point = TraversalWith . point
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Applicative.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Categorical.html 1 - - - - -Data/Monoid/Categorical.hs - - - -
{-# LANGUAGE GADTs #-}
-module Data.Monoid.Categorical
-    ( module Data.Monoid
-    , Endo(Endo, getEndo)
-    , Mon(Mon)
-    , runMon
-    ) where
-
-import Prelude hiding ((.),id)
-import Data.Monoid (Monoid, mempty, mappend) 
-import Control.Category
-
--- | The 'Monoid' of endomorphisms over some object in an arbitrary 'Category'
-data Endo k a = Endo { getEndo :: k a a } 
-
-instance Category k =>  Monoid (Endo k a) where
-    mempty = Endo id
-    Endo f `mappend` Endo g = Endo (f . g)
-
--- | A 'Monoid' is just a 'Category' with one object. 
-data Mon m n o where
-    Mon :: Monoid m => m -> Mon m a a
-
-runMon :: Mon m m m -> m 
-runMon (Mon m) = m
-
-instance Monoid m => Category (Mon m) where
-    id = Mon mempty
-    Mon a . Mon b = Mon (a `mappend` b)
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Categorical.html hunk ./dist/doc/html/monoids/src/Data-Monoid-FromString.html 1 - - - - -Data/Monoid/FromString.hs - - - -
{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, UndecidableInstances #-}
-module Data.Monoid.FromString 
-    ( FromString(FromString,getFromString)
-    ) where
-
-import Control.Functor.Pointed
-import Data.Monoid.Generator
-import Data.Monoid.Reducer
-import GHC.Exts
-
-data FromString m = FromString { getFromString :: m } 
-
-instance Monoid m => Monoid (FromString m) where
-    mempty = FromString mempty
-    FromString a `mappend` FromString b = FromString (a `mappend` b)
-
-instance Reducer Char m => Reducer Char (FromString m) where
-    unit = FromString . unit
-
-instance Reducer Char m => IsString (FromString m) where
-    fromString = FromString . reduce
-
-instance Pointed FromString where
-    point = FromString
-
-instance Copointed FromString where
-    extract = getFromString
-
-instance Functor FromString where
-    fmap f (FromString x) = FromString (f x)
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-FromString.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Generator-Combinators.html 1 - - - - -Data/Monoid/Generator/Combinators.hs - - - -
{-# LANGUAGE UndecidableInstances, TypeOperators, FlexibleContexts, MultiParamTypeClasses, FlexibleInstances, TypeFamilies, ScopedTypeVariables #-}
-module Data.Monoid.Generator.Combinators
-    ( module Data.Monoid.Generator
-    , traverse_
-    , for_
-    , mapM_
-    , forM_
-    , foldMap'
-    , concatMap
-    , and
-    , or
-    , any
-    , all
-    , sum
-    , product
-    , elem
-    , notElem
-    , filter
-    , find
-    ) where
-
-import Prelude hiding (mapM_, any, elem, filter, concatMap, and, or, all, sum, product, notElem)
-import Data.Monoid.Generator
-import Data.Monoid.Applicative
-import Data.Monoid.Monad
-import Data.Monoid.Monad.Identity hiding (mapM_, forM_)
-
-traverse_ :: (Generator c, Applicative f) => (Elem c -> f b) -> c -> f ()
-traverse_ f = getTraversal . mapReduce f
-    
-for_ :: (Generator c, Applicative f) => c -> (Elem c -> f b) -> f ()
-for_ = flip traverse_
-
-mapM_ :: (Generator c, Monad m) => (Elem c -> m b) -> c -> m ()
-mapM_ f = getAction . mapReduce f
-
-forM_ :: (Generator c, Monad m) => c -> (Elem c -> m b) -> m ()
-forM_ = flip mapM_
-
-foldMap' :: (Monoid m, Generator c) => (Elem c -> m) -> c -> m
-foldMap' f = runIdentity . mapReduce f
-
-concatMap :: Generator c => (Elem c -> [b]) -> c -> [b]
-concatMap = foldMap'
-
-and :: (Generator c, Elem c ~ Bool) => c -> Bool
-and = getAll . reduce
-
-or :: (Generator c, Elem c ~ Bool) => c -> Bool
-or = getAny . reduce
-
-any :: Generator c => (Elem c -> Bool) -> c -> Bool
-any f = getAny . mapReduce f
-
-all :: Generator c => (Elem c -> Bool) -> c -> Bool
-all f = getAll . mapReduce f
-
-sum :: (Generator c, Num (Elem c)) => c -> Elem c
-sum = getSum . reduce
-
-product :: (Generator c, Num (Elem c)) => c -> Elem c
-product = getProduct . reduce
-
-elem :: (Generator c, Eq (Elem c)) => Elem c -> c -> Bool
-elem = any . (==)
-
-notElem :: (Generator c, Eq (Elem c)) => Elem c -> c -> Bool
-notElem x = not . elem x
-
-filter :: (Generator c, Elem c `Reducer` m) => (Elem c -> Bool) -> c -> m
-filter p = foldMap' f where
-    f x | p x = unit x
-        | otherwise = mempty
-
-find :: Generator c => (Elem c -> Bool) -> c -> Maybe (Elem c)
-find p = getFirst . filter p
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Generator-Combinators.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Generator.html 1 - - - - -Data/Monoid/Generator.hs - - - -
{-# LANGUAGE UndecidableInstances, TypeOperators, FlexibleContexts, MultiParamTypeClasses, FlexibleInstances, TypeFamilies #-}
-module Data.Monoid.Generator
-    ( module Data.Monoid.Reducer
-    , Generator
-    , Elem
-    , mapReduce
-    , mapTo
-    , mapFrom
-    , reduce
-    , Keys(Keys, getKeys)
-    , Values(Values, getValues)
-    , Char8(Char8, getChar8)
-    ) where
-
-import Data.Word (Word8)
-import Data.Text (Text)
-import Data.Foldable (fold,foldMap)
-import qualified Data.Text as Text
-import qualified Data.ByteString as Strict (ByteString, foldl')
-import qualified Data.ByteString.Char8 as Strict8 (foldl')
-import qualified Data.ByteString.Lazy as Lazy (ByteString, toChunks)
-import qualified Data.ByteString.Lazy.Char8 as Lazy8 (toChunks)
-import qualified Data.Sequence as Seq
-import Data.FingerTree (Measured, FingerTree)
-import Data.Sequence (Seq)
-import qualified Data.Set as Set
-import Data.Set (Set)
-import qualified Data.IntSet as IntSet
-import Data.IntSet (IntSet)
-import qualified Data.IntMap as IntMap
-import Data.IntMap (IntMap)
-import qualified Data.Map as Map
-import Data.Map (Map)
-
-import Control.Parallel.Strategies
-import Data.Monoid.Reducer
-
--- minimal definition mapReduce or affixMapReduce
-class Generator c where
-    type Elem c :: * 
-    mapReduce :: (e `Reducer` m) => (Elem c -> e) -> c -> m
-    mapTo     :: (e `Reducer` m) => (Elem c -> e) -> m -> c -> m 
-    mapFrom   :: (e `Reducer` m) => (Elem c -> e) -> c -> m -> m
-
-    mapReduce f = mapTo f mempty
-    mapTo f m = mappend m . mapReduce f
-    mapFrom f = mappend . mapReduce f
-
-instance Generator Strict.ByteString where
-    type Elem Strict.ByteString = Word8
-    mapTo f = Strict.foldl' (\a -> snoc a . f)
-
-instance Generator Lazy.ByteString where
-    type Elem Lazy.ByteString = Word8
-    mapReduce f = fold . parMap rwhnf (mapReduce f) . Lazy.toChunks
-
-newtype Char8 c = Char8 { getChar8 :: c } 
-
-instance Generator (Char8 Strict.ByteString) where
-    type Elem (Char8 Strict.ByteString) = Char
-    mapTo f m = Strict8.foldl' (\a -> snoc a . f) m . getChar8
-
-instance Generator (Char8 Lazy.ByteString) where
-    type Elem (Char8 Lazy.ByteString) = Char
-    mapReduce f = fold . parMap rwhnf (mapReduce f . Char8) . Lazy8.toChunks . getChar8
-
-instance Generator Text where
-    type Elem Text = Char
-    mapTo f = Text.foldl' (\a -> snoc a . f)
-
-instance Generator [c] where
-    type Elem [c] = c
-    mapReduce f = foldMap (unit . f)
-
-instance Measured v e => Generator (FingerTree v e) where
-    type Elem (FingerTree v e) = e
-    mapReduce f = foldMap (unit . f)
-
-instance Generator (Seq c) where
-    type Elem (Seq c) = c
-    mapReduce f = foldMap (unit . f)
-
-instance Generator IntSet where
-    type Elem IntSet = Int
-    mapReduce f = mapReduce f . IntSet.toList
-
-instance Generator (Set a) where
-    type Elem (Set a) = a
-    mapReduce f = mapReduce f . Set.toList
-
-instance Generator (IntMap v) where
-    type Elem (IntMap v) = (Int,v)
-    mapReduce f = mapReduce f . IntMap.toList
-
-instance Generator (Map k v) where
-    type Elem (Map k v) = (k,v) 
-    mapReduce f = mapReduce f . Map.toList
-
-newtype Keys c = Keys { getKeys :: c } 
-
-instance Generator (Keys (IntMap v)) where
-    type Elem (Keys (IntMap v)) = Int
-    mapReduce f = mapReduce f . IntMap.keys . getKeys
-
-instance Generator (Keys (Map k v)) where
-    type Elem (Keys (Map k v)) = k
-    mapReduce f = mapReduce f . Map.keys . getKeys
-
-newtype Values c = Values { getValues :: c } 
-
-instance Generator (Values (IntMap v)) where
-    type Elem (Values (IntMap v)) = v
-    mapReduce f = mapReduce f . IntMap.elems . getValues
-
-instance Generator (Values (Map k v)) where
-    type Elem (Values (Map k v)) = v
-    mapReduce f = mapReduce f . Map.elems . getValues
-
-{-# SPECIALIZE reduce :: (Word8 `Reducer` m) => Strict.ByteString -> m #-}
-{-# SPECIALIZE reduce :: (Word8 `Reducer` m) => Lazy.ByteString -> m #-}
-{-# SPECIALIZE reduce :: (Char `Reducer` m) => Char8 Strict.ByteString -> m #-}
-{-# SPECIALIZE reduce :: (Char `Reducer` m) => Char8 Lazy.ByteString -> m #-}
-{-# SPECIALIZE reduce :: (c `Reducer` m) => [c] -> m #-}
-{-# SPECIALIZE reduce :: (Generator (FingerTree v e), e `Reducer` m) => FingerTree v e -> m #-}
-{-# SPECIALIZE reduce :: (Char `Reducer` m) => Text -> m #-}
-{-# SPECIALIZE reduce :: (e `Reducer` m) => Seq e -> m #-}
-{-# SPECIALIZE reduce :: (Int `Reducer` m) => IntSet -> m #-}
-{-# SPECIALIZE reduce :: (a `Reducer` m) => Set a -> m #-}
-{-# SPECIALIZE reduce :: ((Int,v) `Reducer` m) => IntMap v -> m #-}
-{-# SPECIALIZE reduce :: ((k,v) `Reducer` m) => Map k v -> m #-}
-{-# SPECIALIZE reduce :: (Int `Reducer` m) => Keys (IntMap v) -> m #-}
-{-# SPECIALIZE reduce :: (k `Reducer` m) => Keys (Map k v) -> m #-}
-{-# SPECIALIZE reduce :: (v `Reducer` m) => Values (IntMap v) -> m #-}
-{-# SPECIALIZE reduce :: (v `Reducer` m) => Values (Map k v) -> m #-}
-reduce :: (Generator c, Elem c `Reducer` m) => c -> m
-reduce = mapReduce id
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Generator.html hunk ./dist/doc/html/monoids/src/Data-Monoid-IntMap.html 1 - - - - -Data/Monoid/IntMap.hs - - - -
{-# LANGUAGE MultiParamTypeClasses #-}
-module Data.Monoid.IntMap 
-    ( module Data.Monoid.Reducer
-    , UnionWith(getUnionWith)
-    ) where
-
-import Data.Monoid.Reducer (Reducer, unit, cons, snoc, Monoid, mappend, mempty)
-import Data.IntMap
-
-newtype UnionWith m = UnionWith { getUnionWith :: IntMap m } 
-
-instance Monoid m => Monoid (UnionWith m) where
-    mempty = UnionWith empty
-    UnionWith a `mappend` UnionWith b = UnionWith (unionWith mappend a b)
-
-instance Monoid m => Reducer (IntMap m) (UnionWith m) where
-    unit = UnionWith
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-IntMap.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Lexical-SourcePosition.html 1 - - - - -Data/Monoid/Lexical/SourcePosition.hs - - - -
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-module Data.Monoid.Lexical.SourcePosition
-    ( module Data.Monoid.Reducer.Char
-    , SourcePosition
-    , SourceLine
-    , SourceColumn
-    , sourceLine
-    , sourceColumn
-    , startOfFile
-    , showSourcePosition
-    ) where
-
-import Prelude hiding (lex)
-import Control.Functor.Extras
-import Control.Functor.Pointed
-import Data.Monoid.Reducer.Char
-
-type SourceLine = Int
-type SourceColumn = Int
-
-data SourcePosition file = Pos file {-# UNPACK #-} !SourceLine !SourceColumn
-         | Lines {-# UNPACK #-} !SourceLine !SourceColumn
-         | Columns {-# UNPACK #-} !SourceColumn
-         | Tab {-# UNPACK #-} !SourceColumn !SourceColumn -- cols before and after an unresolved tab
-    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 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
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Lexical-SourcePosition.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Lexical-UTF8-Decoder.html 1 - - - - -Data/Monoid/Lexical/UTF8/Decoder.hs - - - -
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-module Data.Monoid.Lexical.UTF8.Decoder 
-    ( module Data.Monoid.Reducer.Char
-    , UTF8
-    , runUTF8
-    ) where
-    
-import Data.Bits (shiftL,(.&.),(.|.))
-import Data.Word (Word8)
-
-import Control.Functor.Pointed
-
-import Data.Monoid.Reducer.Char
-
--- Incrementally reduce canonical RFC3629 UTF-8 Characters
-
--- utf8 characters are at most 4 characters long, so we need only retain state for 3 of them
--- moreover their length is able to be determined a priori, so lets store that intrinsically in the constructor
-data H = H0
-       | H2_1 {-# UNPACK #-} !Word8 
-       | H3_1 {-# UNPACK #-} !Word8
-       | H3_2 {-# UNPACK #-} !Word8 !Word8
-       | H4_1 {-# UNPACK #-} !Word8
-       | H4_2 {-# UNPACK #-} !Word8 !Word8
-       | H4_3 {-# UNPACK #-} !Word8 !Word8 !Word8
-
--- words expressing the tail of a character, each between 0x80 and 0xbf
--- this is arbitrary length to simplify making the parser truly monoidal
--- this probably means we have O(n^2) worst case performance in the face of very long runs of chars that look like 10xxxxxx
-type T = [Word8]
-
--- S is a segment that contains a possible tail of a character, the result of reducing some full characters, and the start of another character
--- T contains a list of bytes each between 0x80 and 0xbf
-data UTF8 m = S T m !H
-            | T T
-
--- flush any extra characters in a head, when the next character isn't between 0x80 and 0xbf
-flushH :: CharReducer m => H -> m
-flushH (H0) = mempty
-flushH (H2_1 x) = invalidChar [x]
-flushH (H3_1 x) = invalidChar [x]
-flushH (H3_2 x y) = invalidChar [x,y]
-flushH (H4_1 x) = invalidChar [x]
-flushH (H4_2 x y) = invalidChar [x,y]
-flushH (H4_3 x y z) = invalidChar [x,y,z]
-
--- flush a character tail 
-flushT :: CharReducer m => [Word8] -> m
-flushT = invalidChar
-
-snocH :: CharReducer m => H -> Word8 -> (m -> H -> UTF8 m) -> m -> UTF8 m
-snocH H0 c k m 
-    | c < 0x80 = k (m `mappend` b1 c) H0
-    | c < 0xc0 = k (m `mappend` invalidChar [c]) H0
-    | c < 0xe0 = k m (H2_1 c)
-    | c < 0xf0 = k m (H3_1 c)
-    | c < 0xf5 = k m (H4_1 c)
-    | otherwise = k (m `mappend` invalidChar [c]) H0
-snocH (H2_1 c) d k m
-    | d >= 0x80 && d < 0xc0 = k (m `mappend` b2 c d) H0
-    | otherwise = k (m `mappend` invalidChar [c]) H0
-snocH (H3_1 c) d k m 
-    | d >= 0x80 && d < 0xc0 = k m (H3_2 c d)
-    | otherwise = k (m `mappend` invalidChar [c]) H0
-snocH (H3_2 c d) e k m 
-    | d >= 0x80 && d < 0xc0 = k (m `mappend` b3 c d e) H0
-    | otherwise = k (m `mappend` invalidChar [c,d]) H0
-snocH (H4_1 c) d k m 
-    | d >= 0x80 && d < 0xc0 = k m (H4_2 c d)
-    | otherwise = k (m `mappend` invalidChar [c,d]) H0
-snocH (H4_2 c d) e k m 
-    | d >= 0x80 && d < 0xc0 = k m (H4_3 c d e)
-    | otherwise = k (m `mappend` invalidChar [c,d,e]) H0
-snocH (H4_3 c d e) f k m 
-    | d >= 0x80 && d < 0xc0 = k (m `mappend` b4 c d e f) H0
-    | otherwise = k (m `mappend` invalidChar [c,d,e,f]) H0
-
-mask :: Word8 -> Word8 -> Int
-mask c m = fromEnum (c .&. m) 
-
-combine :: Int -> Word8 -> Int
-combine a r = shiftL a 6 .|. fromEnum (r .&. 0x3f)
-
-b1 :: CharReducer m => Word8 -> m
-b1 c | c < 0x80 = fromChar . toEnum $ fromEnum c
-     | otherwise = invalidChar [c]
-
-b2 :: CharReducer m => Word8 -> Word8 -> m
-b2 c d | valid_b2 c d = fromChar (toEnum (combine (mask c 0x1f) d))
-       | otherwise = invalidChar [c,d]
-
-b3 :: CharReducer m => Word8 -> Word8 -> Word8 -> m
-b3 c d e | valid_b3 c d e = fromChar (toEnum (combine (combine (mask c 0x0f) d) e))
-         | otherwise = invalidChar [c,d,e]
-
-
-b4 :: CharReducer m => Word8 -> Word8 -> Word8 -> Word8 -> m
-b4 c d e f | valid_b4 c d e f = fromChar (toEnum (combine (combine (combine (mask c 0x07) d) e) f))
-           | otherwise = invalidChar [c,d,e,f]
-
-valid_b2 :: Word8 -> Word8 -> Bool
-valid_b2 c d = (c >= 0xc2 && c <= 0xdf && d >= 0x80 && d <= 0xbf)
-
-valid_b3 :: Word8 -> Word8 -> Word8 -> Bool
-valid_b3 c d e = (c == 0xe0 && d >= 0xa0 && d <= 0xbf && e >= 0x80 && e <= 0xbf) || 
-                 (c >= 0xe1 && c <= 0xef && d >= 0x80 && d <= 0xbf && e >= 0x80 && e <= 0xbf)
-
-valid_b4 :: Word8 -> Word8 -> Word8 -> Word8 -> Bool
-valid_b4 c d e f = (c == 0xf0 && d >= 0x90 && d <= 0xbf && e >= 0x80 && e <= 0xbf && f >= 0x80 && f <= 0xbf) ||
-      (c >= 0xf1 && c <= 0xf3 && d >= 0x80 && d <= 0xbf && e >= 0x80 && e <= 0xbf && f >= 0x80 && f <= 0xbf) ||
-                   (c == 0xf4 && d >= 0x80 && d <= 0x8f && e >= 0x80 && e <= 0xbf && f >= 0x80 && f <= 0xbf)
-
-consT :: CharReducer m => Word8 -> T -> (H -> UTF8 m) -> (m -> UTF8 m) -> (T -> UTF8 m) -> UTF8 m
-consT c cs h m t
-             | c < 0x80 = m $ b1 c `mappend` invalidChars cs
-             | c < 0xc0 = t (c:cs)
-             | c < 0xe0 = case cs of
-                        [] -> h $ H2_1 c
-                        (d:ds) -> m $ b2 c d `mappend` invalidChars ds
-             | c < 0xf0 = case cs of
-                        [] -> h $ H3_1 c
-                        [d] -> h $ H3_2 c d
-                        (d:e:es) -> m $ b3 c d e `mappend` invalidChars es
-             | c < 0xf5 = case cs of
-                        [] -> h $ H4_1 c
-                        [d] -> h $ H4_2 c d 
-                        [d,e] -> h $ H4_3 c d e 
-                        (d:e:f:fs) -> m $ b4 c d e f `mappend` invalidChars fs
-             | otherwise = mempty
-
-invalidChars :: CharReducer m => [Word8] -> m
-invalidChars = foldr (mappend . invalidChar . return) mempty
-
-merge :: CharReducer m => H -> T -> (m -> a) -> (H -> a) -> a
-merge H0 cs k _               = k $ invalidChars cs
-merge (H2_1 c) [] _ p         = p $ H2_1 c
-merge (H2_1 c) (d:ds) k _     = k $ b2 c d `mappend` invalidChars ds
-merge (H3_1 c) [] _ p         = p $ H3_1 c
-merge (H3_1 c) [d] _ p        = p $ H3_2 c d
-merge (H3_1 c) (d:e:es) k _   = k $ b3 c d e `mappend` invalidChars es
-merge (H3_2 c d) [] _ p       = p $ H3_2 c d
-merge (H3_2 c d) (e:es) k _   = k $ b3 c d e `mappend` invalidChars es
-merge (H4_1 c) [] _ p         = p $ H4_1 c
-merge (H4_1 c) [d] _ p        = p $ H4_2 c d
-merge (H4_1 c) [d,e] _ p      = p $ H4_3 c d e
-merge (H4_1 c) (d:e:f:fs) k _ = k $ b4 c d e f `mappend` invalidChars fs
-merge (H4_2 c d) [] _ p       = p $ H4_2 c d 
-merge (H4_2 c d) [e] _ p      = p $ H4_3 c d e
-merge (H4_2 c d) (e:f:fs) k _ = k $ b4 c d e f `mappend` invalidChars fs
-merge (H4_3 c d e) [] _ p     = p $ H4_3 c d e
-merge (H4_3 c d e) (f:fs) k _ = k $ b4 c d e f `mappend` invalidChars fs
-
-instance CharReducer m => Monoid (UTF8 m) where
-    mempty = T []
-    T c `mappend` T d = T (c ++ d)
-    T c `mappend` S l m r = S (c ++ l) m r
-    S l m c `mappend` S c' m' r = S l (m `mappend` merge c c' id flushH `mappend` m') r
-    s@(S _ _ _) `mappend` T [] = s
-    S l m c `mappend` T c' = merge c c' k (S l m) where
-        k m' = S l (m `mappend` m') H0
-
-instance CharReducer m => Reducer Word8 (UTF8 m) where
-    unit c | c >= 0x80 && c < 0xc0 = T [c]
-           | otherwise = snocH H0 c (S []) mempty
-    S t m h `snoc` c        = snocH h c (S t) m
-    T t     `snoc` c        | c >= 0x80 && c < 0xc0 = T (t ++ [c])
-                            | otherwise = snocH H0 c (S t) mempty
-
-    c       `cons` T cs     = consT c cs (S [] mempty) (flip (S []) H0) T
-    c       `cons` S cs m h = consT c cs k1 k2 k3 where
-        k1 h' = S [] (flushH h' `mappend` m) h
-        k2 m' = S [] (m' `mappend` m) h
-        k3 t' = S t' m h
-    
-instance Functor UTF8 where
-    fmap f (S t x h) = S t (f x) h
-    fmap _ (T t) = T t
-
-instance Pointed UTF8 where
-    point f = S [] f H0
-
-runUTF8 :: CharReducer m => UTF8 m -> m 
-runUTF8 (T t) = flushT t
-runUTF8 (S t m h) = flushT t `mappend` m `mappend` flushH h
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Lexical-UTF8-Decoder.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Lexical-Words.html 1 - - - - -Data/Monoid/Lexical/Words.hs - - - -
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, FlexibleContexts, GeneralizedNewtypeDeriving, ParallelListComp, TypeFamilies #-}
-module Data.Monoid.Lexical.Words 
-    ( module Data.Monoid.Reducer.Char
-    , Words
-    , runWords
-    , Lines
-    , runLines
-    , Unspaced(runUnspaced)
-    , Unlined(runUnlined)
-    , wordsFrom
-    , linesFrom
-    ) where
-
-import Data.Char (isSpace)
-import Data.Maybe (maybeToList)
-import Data.Monoid.Reducer.Char
-import Data.Monoid.Generator
-import Control.Functor.Pointed
-
-data Words m = Chunk (Maybe m)
-             | Segment (Maybe m) [m] (Maybe m)
-    deriving (Show,Read)
-
-runWords :: Words m -> [m]
-runWords (Chunk m) = maybeToList m
-runWords (Segment l m r) = maybeToList l ++ m ++ maybeToList r
-
-instance Monoid m => Monoid (Words m) where
-    mempty = Chunk mempty
-    Chunk l `mappend` Chunk r = Chunk (l `mappend` r)
-    Chunk l `mappend` Segment l' m r = Segment (l `mappend` l') m r
-    Segment l m r `mappend` Chunk r' = Segment l m (r `mappend` r')
-    Segment l m r `mappend` Segment l' m' r' = Segment l (m ++ maybeToList (r `mappend` l') ++ m') r'
-
-instance Reducer Char m => Reducer Char (Words m) where
-    unit c | isSpace c = Segment (Just (unit c)) [] mempty
-           | otherwise = Chunk (Just (unit c))
-
-instance Functor Words where
-    fmap f (Chunk m) = Chunk (fmap f m)
-    fmap f (Segment m ms m') = Segment (fmap f m) (fmap f ms) (fmap f m')
-
--- abuse the same machinery to handle lines as well
-
-newtype Lines m = Lines (Words m) deriving (Show,Read,Monoid,Functor)
-
-instance Reducer Char m => Reducer Char (Lines m) where
-    unit '\n' = Lines $ Segment (Just (unit '\n')) [] mempty
-    unit c = Lines $ Chunk (Just (unit c))
-
-runLines :: Lines m -> [m]
-runLines (Lines x) = runWords x
-
-newtype Unspaced m = Unspaced { runUnspaced :: m }  deriving (Eq,Ord,Show,Read,Monoid)
-
-instance Reducer Char m => Reducer Char (Unspaced m) where
-    unit c | isSpace c = mempty
-           | otherwise = Unspaced (unit c)
-
-instance CharReducer m => CharReducer (Unspaced m) where
-    invalidChar = Unspaced . invalidChar
-
-instance Functor Unspaced where
-    fmap f (Unspaced x) = Unspaced (f x)
-
-instance Pointed Unspaced where
-    point = Unspaced
-
-instance Copointed Unspaced where
-    extract = runUnspaced
-
-newtype Unlined m = Unlined { runUnlined :: m }  deriving (Eq,Ord,Show,Read,Monoid)
-
-instance Reducer Char m => Reducer Char (Unlined m) where
-    unit '\n' = mempty
-    unit c = Unlined (unit c)
-
-instance CharReducer m => CharReducer (Unlined m) where
-    invalidChar = Unlined . invalidChar
-
-instance Functor Unlined where
-    fmap f (Unlined x) = Unlined (f x)
-
-instance Pointed Unlined where
-    point = Unlined
-
-instance Copointed Unlined where
-    extract = runUnlined
-
--- accumulator, inside-word, and until-next-word monoids
-wordsFrom :: (Generator c, Elem c ~ Char, Char `Reducer` m, Char `Reducer` n, Char `Reducer` o) => m -> c -> [(m,n,o)]
-wordsFrom s c = [(x,runUnlined y,z) | x <- scanl mappend s ls | (y,z) <- rs ] where
-    (ls,rs) = unzip (runWords (mapReduce id c))
-
--- accumulator, inside-line, and until-next-line monoids
-linesFrom :: (Generator c, Elem c ~ Char, Char `Reducer` m, Char `Reducer` n, Char `Reducer` o) => m -> c -> [(m,n,o)]
-linesFrom s c = [(x,runUnlined y,z) | x <- scanl mappend s ls | (y,z) <- rs ] where
-    (ls,rs) = unzip (runLines (mapReduce id c))
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Lexical-Words.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Map.html 1 - - - - -Data/Monoid/Map.hs - - - -
{-# LANGUAGE MultiParamTypeClasses #-}
-module Data.Monoid.Map 
-    ( module Data.Monoid.Reducer
-    , UnionWith(getUnionWith)
-    ) where
-
-import Prelude (Ord)
-import Data.Monoid.Reducer (Reducer, unit, cons, snoc, Monoid, mempty, mappend)
-import Data.Map
-
--- only needs m to be a semigroup, but Haskell doesn't have a semigroup class
-
-newtype UnionWith k m = UnionWith { getUnionWith :: Map k m } 
-
-instance (Ord k, Monoid m) => Monoid (UnionWith k m) where
-    mempty = UnionWith empty
-    UnionWith a `mappend` UnionWith b = UnionWith (unionWith mappend a b)
-
-instance (Ord k, Monoid m) => Reducer (Map k m) (UnionWith k m) where
-    unit = UnionWith
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Map.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-Cont.html 1 - - - - -Data/Monoid/Monad/Cont.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.Cont
-    ( module Control.Monad.Cont
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad.Cont
-import Data.Monoid.Reducer
-
-instance (Monoid m) => Monoid (Cont r m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance (Monad m, Monoid n) => Monoid (ContT r m n) where
-    mempty = return mempty 
-    mappend = liftM2 mappend
-
-instance Monoid m => Reducer m (Cont r m) where
-    unit = return
-
-instance (Monad m, Monoid n) => Reducer n (ContT r m n) where
-    unit = return
-
-instance (Monad m, Monoid n) => Reducer (m n) (ContT r m n) where
-    unit = lift
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-Cont.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-Either.html 1 - - - - -Data/Monoid/Monad/Either.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.Either
-    ( module Control.Monad.Either -- from category extras
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad.Either
-import Data.Monoid.Reducer
-
-instance Monoid m => Monoid (Either e m) where
-    mempty = return mempty
-    x `mappend` y = do 
-        x' <- x
-        y' <- y
-        return (x' `mappend` y')
-
-instance Monoid m => Reducer m (Either e m) where
-    unit = return
-
-instance (Monad m, Monoid n) => Monoid (EitherT e m n) where
-    mempty = return mempty 
-    x `mappend` y = do
-        x' <- x
-        y' <- y
-        return (x' `mappend` y')
-
-instance (Monad m, Monoid n) => Reducer n (EitherT e m n) where
-    unit = return
-
-instance (Monad m, Monoid n) => Reducer (m n) (EitherT e m n) where
-    unit = EitherT . liftM return
-
-liftM :: Monad m => (a -> b) -> m a -> m b
-liftM f x = do x' <- x; return (f x')
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-Either.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-IO.html 1 - - - - -Data/Monoid/Monad/IO.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-
-module Data.Monoid.Monad.IO
-    ( module System.IO
-    , module Data.Monoid.Reducer
-    , module Control.Monad
-    )  where
-
-import System.IO
-import Data.Monoid.Reducer
-import Control.Monad
-import Control.Monad.ST
-import Control.Concurrent.STM
-
-instance Monoid m => Monoid (IO m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance Monoid m => Reducer m (IO m) where
-    unit = return
-
-instance Monoid m => Reducer (ST RealWorld m) (IO m) where
-    unit = stToIO
-
-instance Monoid m => Reducer (STM m) (IO m) where
-    unit = atomically
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-IO.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-Identity.html 1 - - - - -Data/Monoid/Monad/Identity.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.Identity
-    ( module Control.Monad.Identity
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad.Identity
-import Data.Monoid.Reducer
-
-instance Monoid m => Monoid (Identity m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance Monoid m => Reducer m (Identity m) where
-    unit = Identity
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-Identity.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-RWS-Lazy.html 1 - - - - -Data/Monoid/Monad/RWS/Lazy.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.RWS.Lazy
-    ( module Control.Monad.RWS.Lazy
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad.RWS.Lazy
-import Data.Monoid.Reducer
-
-instance (Monoid w, Monoid m) => Monoid (RWS r w s m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance (Monad m, Monoid w, Monoid n) => Monoid (RWST r w s m n) where
-    mempty = return mempty 
-    mappend = liftM2 mappend
-
-instance (Monoid w, Monoid m) => Reducer m (RWS r w s m) where
-    unit = return
-
-instance (Monad m, Monoid w, Monoid n) => Reducer n (RWST r w s m n) where
-    unit = return
-
-instance (Monad m, Monoid w, Monoid n) => Reducer (m n) (RWST r w s m n) where
-    unit = lift
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-RWS-Lazy.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-RWS-Strict.html 1 - - - - -Data/Monoid/Monad/RWS/Strict.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-
-module Data.Monoid.Monad.RWS.Strict
-    ( module Control.Monad.RWS.Strict
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad.RWS.Strict
-import Data.Monoid.Reducer
-
-instance (Monoid w, Monoid m) => Monoid (RWS r w s m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance (Monad m, Monoid w, Monoid n) => Monoid (RWST r w s m n) where
-    mempty = return mempty 
-    mappend = liftM2 mappend
-
-instance (Monoid w, Monoid m) => Reducer m (RWS r w s m) where
-    unit = return
-
-instance (Monad m, Monoid w, Monoid n) => Reducer n (RWST r w s m n) where
-    unit = return
-
-instance (Monad m, Monoid w, Monoid n) => Reducer (m n) (RWST r w s m n) where
-    unit = lift
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-RWS-Strict.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-Reader.html 1 - - - - -Data/Monoid/Monad/Reader.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.Reader
-    ( module Control.Monad.Reader
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad.Reader
-import Data.Monoid.Reducer
-
-instance Monoid m => Monoid (Reader e m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance Monoid m => Reducer m (Reader e m) where
-    unit = return
-
-instance (Monad m, Monoid n) => Monoid (ReaderT e m n) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance (Monad m, Monoid n) => Reducer n (ReaderT e m n) where
-    unit = return
-
-instance (Monad m, Monoid n) => Reducer (m n) (ReaderT e m n) where
-    unit = lift
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-Reader.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-ST-Lazy.html 1 - - - - -Data/Monoid/Monad/ST/Lazy.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.ST.Lazy
-    ( module Control.Monad.ST.Lazy
-    , module Control.Monad
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad
-import Control.Monad.ST.Lazy
-import Data.Monoid.Reducer
-
-instance Monoid m => Monoid (ST s m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance Monoid m => Reducer m (ST s m) where
-    unit = return
-
-
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-ST-Lazy.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-ST-Strict.html 1 - - - - -Data/Monoid/Monad/ST/Strict.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.ST.Strict
-    ( module Control.Monad.ST.Strict
-    , module Control.Monad
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad
-import Control.Monad.ST.Strict
-import Data.Monoid.Reducer
-
-instance Monoid m => Monoid (ST s m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance Monoid m => Reducer m (ST s m) where
-    unit = return
-
-
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-ST-Strict.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-STM.html 1 - - - - -Data/Monoid/Monad/STM.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.STM
-    ( module Control.Concurrent.STM
-    , module Control.Monad
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad
-import Control.Concurrent.STM
-import Data.Monoid.Reducer
-
-instance Monoid m => Monoid (STM m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance Monoid m => Reducer m (STM m) where
-    unit = return
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-STM.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-State-Lazy.html 1 - - - - -Data/Monoid/Monad/State/Lazy.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.State.Lazy
-    ( module Control.Monad.State.Lazy
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad.State.Lazy
-import Data.Monoid.Reducer
-
-instance Monoid m => Monoid (State s m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance (Monad m, Monoid n) => Monoid (StateT s m n) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance Monoid m => Reducer m (State s m) where
-    unit = return
-
-instance (Monad m, Monoid n) => Reducer n (StateT s m n) where
-    unit = return
-
-instance (Monad m, Monoid n) => Reducer (m n) (StateT s m n) where
-    unit = lift
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-State-Lazy.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-State-Strict.html 1 - - - - -Data/Monoid/Monad/State/Strict.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.State.Strict
-    ( module Control.Monad.State.Strict
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad.State.Strict
-import Data.Monoid.Reducer
-
-instance Monoid m => Monoid (State s m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance (Monad m, Monoid n) => Monoid (StateT s m n) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance Monoid m => Reducer m (State s m) where
-    unit = return
-
-instance (Monad m, Monoid n) => Reducer n (StateT s m n) where
-    unit = return
-
-instance (Monad m, Monoid n) => Reducer (m n) (StateT s m n) where
-    unit = lift
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-State-Strict.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-Writer-Lazy.html 1 - - - - -Data/Monoid/Monad/Writer/Lazy.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.Writer.Lazy
-    ( module Control.Monad.Writer.Lazy
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad.Writer.Lazy
-import Data.Monoid.Reducer
-
-instance (Monoid w, Monoid m) => Monoid (Writer w m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance (Monad m, Monoid w, Monoid n) => Monoid (WriterT w m n) where
-    mempty = return mempty 
-    mappend = liftM2 mappend
-
-instance (Monoid w, Monoid m) => Reducer m (Writer w m) where
-    unit = return
-
-instance (Monad m, Monoid w, Monoid n) => Reducer n (WriterT w m n) where
-    unit = return
-
-instance (Monad m, Monoid w, Monoid n) => Reducer (m n) (WriterT w m n) where
-    unit = lift
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-Writer-Lazy.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad-Writer-Strict.html 1 - - - - -Data/Monoid/Monad/Writer/Strict.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-
-module Data.Monoid.Monad.Writer.Strict
-    ( module Control.Monad.Writer.Strict
-    , module Data.Monoid.Reducer
-    )  where
-
-import Control.Monad.Writer.Strict
-import Data.Monoid.Reducer
-
-instance (Monoid w, Monoid m) => Monoid (Writer w m) where
-    mempty = return mempty
-    mappend = liftM2 mappend
-
-instance (Monad m, Monoid w, Monoid n) => Monoid (WriterT w m n) where
-    mempty = return mempty 
-    mappend = liftM2 mappend
-
-instance (Monoid w, Monoid m) => Reducer m (Writer w m) where
-    unit = return
-
-instance (Monad m, Monoid w, Monoid n) => Reducer n (WriterT w m n) where
-    unit = return
-
-instance (Monad m, Monoid w, Monoid n) => Reducer (m n) (WriterT w m n) where
-    unit = lift
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad-Writer-Strict.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Monad.html 1 - - - - -Data/Monoid/Monad.hs - - - -
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, GeneralizedNewtypeDeriving, FlexibleContexts #-}
-module Data.Monoid.Monad 
-    ( module Control.Monad
-    , module Data.Monoid.Reducer
-    , Action(Action,getAction)
-    , MonadSum(MonadSum,getMonadSum)
-    , ActionWith(ActionWith,getActionWith)
-    ) where
-
-import Data.Monoid.Reducer
-import Control.Monad (MonadPlus, mplus, mzero, (>=>), liftM2)
-
-newtype Action m = Action { getAction :: m () } 
-
-instance Monad m => Monoid (Action m) where
-    mempty = Action (return ())
-    Action a `mappend` Action b = Action (a >> b)
-
-instance Monad m => Reducer (m a) (Action m) where
-    unit a = Action (a >> return ())
-    a `cons` Action b = Action (a >> b)
-    Action a `snoc` b = Action (a >> b >> return ())
-
-{-# RULES "unitAction" unit = Action #-}
-{-# RULES "snocAction" snoc = snocAction #-} 
-snocAction :: Reducer (m ()) (Action m) => Action m -> m () -> Action m
-snocAction a = mappend a . Action
-
-newtype MonadSum m a = MonadSum { getMonadSum :: m a } 
-    deriving (Eq,Ord,Show,Read,Functor,Monad,MonadPlus)
-
-instance MonadPlus m => Monoid (MonadSum m a) where
-    mempty = MonadSum mzero
-    MonadSum a `mappend` MonadSum b = MonadSum (a `mplus` b)
-
-instance MonadPlus m => Reducer (m a) (MonadSum m a) where
-    unit = MonadSum
-
-newtype ActionWith m n = ActionWith { getActionWith :: m n }
-
-instance (Monad m, Monoid n) => Monoid (ActionWith m n) where
-    mempty = ActionWith (return mempty)
-    ActionWith a `mappend` ActionWith b = ActionWith (liftM2 mappend a b)
-
-instance (Monad m, Monoid n) => Reducer (m n) (ActionWith m n) where
-    unit = ActionWith
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Monad.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Multiplicative-Sugar.html 1 - - - - -Data/Monoid/Multiplicative/Sugar.hs - - - -
module Data.Monoid.Multiplicative.Sugar
-    ( module Data.Monoid.Additive.Sugar
-    , module Data.Monoid.Multiplicative
-    , (*)
-    ) where
-
-import Data.Monoid.Additive.Sugar
-import Data.Monoid.Multiplicative
-import Prelude hiding ((*))
-
-infixl 7 *
-
-(*) :: MultiplicativeMonoid r => r -> r -> r
-(*) = times
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Multiplicative-Sugar.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Multiplicative-Transformer.html 1 - - - - -Data/Monoid/Multiplicative/Transformer.hs - - - -
module Data.Monoid.Multiplicative.Transformer
-    ( module Data.Monoid.Multiplicative
-    , Log(Log, getLog)
-    , Exp(Exp, getExp) 
-    ) where
-
-import Data.Monoid.Multiplicative
-
-data Log m = Log { getLog :: m }
-
-instance MultiplicativeMonoid m => Monoid (Log m) where
-    mempty = Log one
-    Log a `mappend` Log b = Log (a `times` b)
-
-data Exp m = Exp { getExp :: m }
-
-instance Monoid m => MultiplicativeMonoid (Exp m) where
-    one = Exp mempty
-    Exp a `times` Exp b = Exp (a `mappend` b)
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Multiplicative-Transformer.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Multiplicative-Transformers.html 1 - - - - -Data/Monoid/Multiplicative/Transformers.hs - - - -
module Data.Monoid.Multiplicative.Transformers
-    ( module Data.Monoid.Multiplicative
-    , Log(Log, getLog)
-    , Exp(Exp, getExp) 
-    ) where
-
-import Data.Monoid.Multiplicative
-
-data Log m = Log { getLog :: m }
-
-instance MultiplicativeMonoid m => Monoid (Log m) where
-    mempty = Log one
-    Log a `mappend` Log b = Log (a `times` b)
-
-data Exp m = Exp { getExp :: m }
-
-instance Monoid m => MultiplicativeMonoid (Exp m) where
-    one = Exp mempty
-    Exp a `times` Exp b = Exp (a `mappend` b)
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Multiplicative-Transformers.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Multiplicative.html 1 - - - - -Data/Monoid/Multiplicative.hs - - - -
module Data.Monoid.Multiplicative 
-    ( module Data.Monoid.Additive
-    , MultiplicativeMonoid
-    , one, times
-    ) where
-
-import Data.Monoid.Additive
-import Data.FingerTree
-import Data.Monoid.FromString
-import Data.Monoid.Monad.Identity
-import Data.Monoid.Generator
-import qualified Data.Sequence as Seq
-import Data.Sequence (Seq)
-
-class MultiplicativeMonoid m where
-    one :: m
-    times :: m -> m -> m
-
-instance Monoid m => MultiplicativeMonoid [m] where
-    one = [mempty]
-    xss `times` yss = [ xs `mappend` ys | xs <- xss, ys <- yss ]
-
-instance (Measured v m, Monoid m) => MultiplicativeMonoid (FingerTree v m) where
-    one = singleton mempty
-    xss `times` yss = runIdentity $ mapReduce (flip fmap' yss . mappend) xss
-
-instance (Monoid m) => MultiplicativeMonoid (Seq m) where
-    one = Seq.singleton mempty
-    xss `times` yss = runIdentity $ mapReduce (flip fmap yss . mappend) xss
-
-instance MultiplicativeMonoid m => MultiplicativeMonoid (Identity m) where
-    one = Identity one
-    Identity a `times` Identity b = Identity (a `times` b)
-
-instance MultiplicativeMonoid m => MultiplicativeMonoid (FromString m) where
-    one = FromString one
-    FromString a `times` FromString b = FromString (a `times` b)
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Multiplicative.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Ord.html 1 - - - - -Data/Monoid/Ord.hs - - - -
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
------------------------------------------------------------------------------
----- |
----- Module      :  Data.Monoid.Ord
----- Copyright   :  (c) Edward Kmett 2009
----- License     :  BSD-style
----- Maintainer  :  libraries@haskell.org
----- Stability   :  experimental
----- Portability :  portable
-----
----- Some 'Monoid' instances that should probably be in "Data.Monoid".
-----
------------------------------------------------------------------------------
-
-module Data.Monoid.Ord 
-    ( module Data.Monoid.Reducer
-    -- * Max
-    , Max(Max,getMax)
-    -- * Min
-    , Min(Min,getMin)
-    -- * MaxPriority: Max semigroup w/ added bottom
-    , MaxPriority(MaxPriority,getMaxPriority)
-    -- * MinPriority: Min semigroup w/ added top
-    , MinPriority(MinPriority,getMinPriority)
-    ) where
-
-import Control.Functor.Pointed
-import Data.Monoid.Reducer (Reducer, unit, Monoid, mappend, mempty)
-
-
--- | The 'Monoid' @('max','minBound')@
-newtype Max a = Max { getMax :: a } deriving (Eq,Ord,Show,Read,Bounded)
-
-instance (Ord a, Bounded a) => Monoid (Max a) where
-    mempty = Max minBound
-    mappend = max
-
-instance (Ord a, Bounded a) => Reducer a (Max a) where
-    unit = Max
-
-instance Functor Max where 
-    fmap f (Max a) = Max (f a)
-
-instance Pointed Max where
-    point = Max
-
-instance Copointed Max where
-    extract = getMax
-
--- | The 'Monoid' given by @('min','maxBound')@
-newtype Min a = Min { getMin :: a } deriving (Eq,Ord,Show,Read,Bounded)
-
-instance (Ord a, Bounded a) => Monoid (Min a) where
-    mempty = Min maxBound
-    mappend = min
-
-instance (Ord a, Bounded a) => Reducer a (Min a) where
-    unit = Min
-
-instance Functor Min where
-    fmap f (Min a) = Min (f a)
-
-instance Pointed Min where
-    point = Min
-
-instance Copointed Min where
-    extract = getMin
-
--- | The 'Monoid' @('max','Nothing')@ over @'Maybe' a@ where 'Nothing' is the bottom element
-newtype MaxPriority a = MaxPriority { getMaxPriority :: Maybe a } deriving (Eq,Ord,Show,Read)
-
-instance Ord a => Monoid (MaxPriority a) where
-    mempty = MaxPriority Nothing
-    mappend = max
-
-instance Ord a => Reducer (Maybe a) (MaxPriority a) where
-    unit = MaxPriority
-
-instance Functor MaxPriority where
-    fmap f (MaxPriority a) = MaxPriority (fmap f a)
-
-instance Pointed MaxPriority where
-    point = MaxPriority . Just
-
--- | The 'Monoid' @('min','Nothing')@ over @'Maybe' a@ where 'Nothing' is the top element
-newtype MinPriority a = MinPriority { getMinPriority :: Maybe a } deriving (Eq,Show,Read)
-
-instance Ord a => Ord (MinPriority a) where
-    MinPriority Nothing  `compare` MinPriority Nothing  = EQ
-    MinPriority Nothing  `compare` _                    = GT
-    _                    `compare` MinPriority Nothing  = LT
-    MinPriority (Just a) `compare` MinPriority (Just b) = a `compare` b
-
-instance Ord a => Monoid (MinPriority a) where
-    mempty = MinPriority Nothing
-    mappend = min
-
-instance Ord a => Reducer (Maybe a) (MinPriority a) where
-    unit = MinPriority
-
-instance Functor MinPriority where
-    fmap f (MinPriority a) = MinPriority (fmap f a)
-
-instance Pointed MinPriority where
-    point = MinPriority . Just
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Ord.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer-Char.html 1 - - - - -Data/Monoid/Reducer/Char.hs - - - -
{-# LANGUAGE UndecidableInstances, FlexibleContexts, MultiParamTypeClasses, FlexibleInstances #-}
-module Data.Monoid.Reducer.Char
-    ( module Data.Monoid.Reducer
-    , CharReducer
-    , invalidChar
-    , fromChar
-    ) where
-
-import Data.Monoid.Reducer
-import Data.Word (Word8)
-
-class Reducer Char m => CharReducer m where
-    fromChar :: Char -> m 
-    fromChar = unit
-
-    invalidChar :: [Word8] -> m
-    invalidChar = const mempty
-
-instance (CharReducer m, CharReducer m') =>  CharReducer (m,m') where
-    invalidChar bs = (invalidChar bs, invalidChar bs)
-
-instance (CharReducer m, CharReducer m', CharReducer m'') =>  CharReducer (m,m',m'') where
-    invalidChar bs = (invalidChar bs, invalidChar bs, invalidChar bs)
-
-instance (CharReducer m, CharReducer m', CharReducer m'', CharReducer m''') =>  CharReducer (m,m',m'',m''') where
-    invalidChar bs = (invalidChar bs, invalidChar bs, invalidChar bs, invalidChar bs)
-
-instance CharReducer [Char]
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Reducer-Char.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer-Sugar.html 1 - - - - -Data/Monoid/Reducer/Sugar.hs - - - -
{-# LANGUAGE FlexibleInstances, FlexibleContexts, UndecidableInstances #-}
-module Data.Monoid.Reducer.Sugar 
-    ( module Data.Monoid.Reducer
-    , fromInteger
-    , IsString, fromString
-    ) where
-
-import Prelude hiding (fromInteger)
-import GHC.Exts hiding (fromString)
-import Data.Monoid.Generator
-import Data.Monoid.Reducer
-
-fromInteger :: Reducer Integer m => Integer -> m
-fromInteger = unit
-
-fromString :: Reducer Char m => String -> m
-fromString = reduce
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Reducer-Sugar.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer-With.html 1 - - - - -Data/Monoid/Reducer/With.hs - - - -
{-# LANGUAGE UndecidableInstances, TypeOperators, FlexibleContexts, MultiParamTypeClasses, FlexibleInstances #-}
-module Data.Monoid.Reducer.With
-    ( module Data.Monoid.Reducer
-    , WithReducer(WithReducer,runWithReducer)
-    , withoutReducer
-    ) where
-
-import Data.Monoid.Reducer
-import Data.FingerTree
-
-newtype WithReducer c m = WithReducer { runWithReducer :: (m,c) } 
-
-withoutReducer :: c `WithReducer` m -> c
-withoutReducer = snd . runWithReducer
-
-instance (c `Reducer` m) => Reducer (c `WithReducer` m) m where
-    unit = fst . runWithReducer 
-
-instance (c `Reducer` m) => Measured m (c `WithReducer` m) where
-    measure = fst . runWithReducer
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Reducer-With.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 1 - - - - -Data/Monoid/Reducer.hs - - - -
{-# LANGUAGE UndecidableInstances , FlexibleContexts , MultiParamTypeClasses , FlexibleInstances , GeneralizedNewtypeDeriving , FunctionalDependencies #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-module Data.Monoid.Reducer
-    ( module Data.Monoid
-    , Reducer
-    , unit, snoc, cons
-    , foldMapReduce
-    , foldReduce
-    ) where
-
-import Data.Monoid
-import Data.Foldable
-import Data.FingerTree
-import qualified Data.Sequence as Seq
-import Data.Sequence (Seq)
-import qualified Data.Set as Set
-import Data.Set (Set)
-import qualified Data.IntSet as IntSet
-import Data.IntSet (IntSet)
-import qualified Data.IntMap as IntMap
-import Data.IntMap (IntMap)
-import qualified Data.Map as Map
-import Data.Map (Map)
---import qualified Data.BitSet as BitSet
---import Data.BitSet (BitSet)
-
--- minimal definition unit or snoc
-class Monoid m => Reducer c m where
-    unit :: c -> m 
-    snoc :: m -> c -> m
-    cons :: c -> m -> m 
-
-    unit = snoc mempty 
-    snoc m = mappend m . unit
-    cons = mappend . unit
-
-foldMapReduce :: (Foldable f, e `Reducer` m) => (a -> e) -> f a -> m
-foldMapReduce f = foldMap (unit . f)
-
-foldReduce :: (Foldable f, e `Reducer` m) => f e -> m
-foldReduce = foldMap unit
-
-instance (Reducer c m, Reducer c n) => Reducer c (m,n) where
-    unit x = (unit x,unit x)
-    (m,n) `snoc` x = (m `snoc` x, n `snoc` x)
-    x `cons` (m,n) = (x `cons` m, x `cons` n)
-
-instance (Reducer c m, Reducer c n, Reducer c o) => Reducer c (m,n,o) where
-    unit x = (unit x,unit x, unit x)
-    (m,n,o) `snoc` x = (m `snoc` x, n `snoc` x, o `snoc` x)
-    x `cons` (m,n,o) = (x `cons` m, x `cons` n, x `cons` o)
-
-instance (Reducer c m, Reducer c n, Reducer c o, Reducer c p) => Reducer c (m,n,o,p) where
-    unit x = (unit x,unit x, unit x, unit x)
-    (m,n,o,p) `snoc` x = (m `snoc` x, n `snoc` x, o `snoc` x, p `snoc` x)
-    x `cons` (m,n,o,p) = (x `cons` m, x `cons` n, x `cons` o, x `cons` p)
-
-instance Reducer c [c] where
-    unit = return
-    cons = (:)
-    xs `snoc` x = xs ++ [x]
-
-instance Reducer c () where
-    unit _ = ()
-    _ `snoc` _ = ()
-    _ `cons` _ = ()
-
-instance Reducer Bool Any where
-    unit = Any
-
-instance Reducer Bool All where
-    unit = All
-
-instance Reducer (a -> a) (Endo a) where
-    unit = Endo
-
-instance Monoid a => Reducer a (Dual a) where
-    unit = Dual
-    
-instance Num a => Reducer a (Sum a) where
-    unit = Sum
-
-instance Num a => Reducer a (Product a) where
-    unit = Product
-
-instance Reducer (Maybe a) (First a) where
-    unit = First
-
-instance Reducer a (First a) where
-    unit = First . Just
-
-instance Reducer (Maybe a) (Last a) where
-    unit = Last
-
-instance Reducer a (Last a) where
-    unit = Last . Just
-
--- orphan, which should be in Data.FingerTree
-instance Measured v a => Monoid (FingerTree v a) where
-    mempty = empty
-    mappend = (><)
-
-instance Measured v a => Reducer a (FingerTree v a) where
-    unit = singleton
-    cons = (<|)
-    snoc = (|>) 
-
-instance Reducer a (Seq a) where
-    unit = Seq.singleton
-    cons = (Seq.<|)
-    snoc = (Seq.|>)
-
-instance Reducer Int IntSet where
-    unit = IntSet.singleton
-    cons = IntSet.insert
-    snoc = flip IntSet.insert -- left bias irrelevant
-
-instance Ord a => Reducer a (Set a) where
-    unit = Set.singleton
-    cons = Set.insert
-    -- pedantic in case Eq doesn't implement structural equality
-    snoc s m | Set.member m s = s 
-             | otherwise = Set.insert m s
-
-instance Reducer (Int,v) (IntMap v) where
-    unit = uncurry IntMap.singleton
-    cons = uncurry IntMap.insert
-    snoc = flip . uncurry . IntMap.insertWith $ const id
-
-instance Ord k => Reducer (k,v) (Map k v) where
-    unit = uncurry Map.singleton
-    cons = uncurry Map.insert
-    snoc = flip . uncurry . Map.insertWith $ const id
-
-{-
-instance Enum a => Monoid (BitSet a) where
-    mempty = BitSet.empty
-    mappend = BitSet.union -- not yet present, contacted library author
-
-instance Enum a => Reducer a (BitSet a) where
-    unit m = BitSet.insert m BitSet.empty
--}
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Self.html 1 - - - - -Data/Monoid/Self.hs - - - -
{-# LANGUAGE UndecidableInstances, FlexibleContexts, MultiParamTypeClasses, FlexibleInstances, GeneralizedNewtypeDeriving #-}
-module Data.Monoid.Self
-    ( module Data.Monoid.Reducer
-    , Self(Self, getSelf)
-    ) where
-
-import Control.Functor.Pointed
-import Data.Monoid.Reducer
-import Data.Monoid.Generator
-
-newtype Self m = Self { getSelf :: m } deriving (Monoid)
-
-instance Monoid m => Reducer m (Self m) where
-    unit = Self
-
-instance Functor Self where
-    fmap f = Self . f . getSelf
-
-instance Pointed Self where
-    point = Self
-
-instance Copointed Self where
-    extract = getSelf
-
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Self.html hunk ./dist/doc/html/monoids/src/Data-Monoid-Unit.html 1 - - - - -Data/Monoid/Unit.hs - - - -
{-# LANGUAGE FlexibleInstances, FlexibleContexts, UndecidableInstances, MultiParamTypeClasses #-}
------------------------------------------------------------------------------
----- |
----- Module      :  Data.Monoid.Unit
----- Copyright   :  (c) Edward Kmett 2009
----- License     :  BSD-style
----- Maintainer  :  libraries@haskell.org
----- Stability   :  experimental
----- Portability :  portable
-----
------------------------------------------------------------------------------
-module Data.Monoid.Unit 
-    ( module Data.Monoid.Reducer
-    , Unit(Unit,getUnit) 
-    ) where
-
-import Control.Functor.Pointed
-import Data.Monoid.Reducer
-import Data.Monoid.Reducer.Char
-
-newtype Unit c = Unit { getUnit :: () } 
-
-instance Monoid (Unit c) where
-    mempty = Unit ()
-    _ `mappend` _ = Unit ()
-    mconcat _ = Unit ()
-
-instance Reducer c (Unit c) where 
-    unit _ = Unit ()
-    cons _ _ = Unit ()
-    snoc _ _ = Unit ()
-
-instance CharReducer (Unit Char)
-
-instance Functor Unit where
-    fmap _ _ = Unit ()
-    
-instance Pointed Unit where
-    point _ = Unit ()
-
- rmfile ./dist/doc/html/monoids/src/Data-Monoid-Unit.html hunk ./dist/doc/html/monoids/src/Data-Ring-Bool.html 1 - - - - -Data/Ring/Bool.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-module Data.Ring.Bool
-    ( module Data.Ring
-    ) where
-
-import Data.Ring
-
- rmfile ./dist/doc/html/monoids/src/Data-Ring-Bool.html hunk ./dist/doc/html/monoids/src/Data-Ring-FromNum.html 1 - - - - -Data/Ring/FromNum.hs - - - -
{-# LANGUAGE FlexibleInstances, FlexibleContexts, MultiParamTypeClasses, GeneralizedNewtypeDeriving #-}
-module Data.Ring.FromNum 
-    ( module Data.Ring
-    , FromNum(FromNum, getFromNum)
-    ) where
-
-import Data.Ring
-import Data.Monoid.Reducer
-
-newtype FromNum a = FromNum { getFromNum :: a } deriving (Eq,Show,Num)
-
-instance Num a => Monoid (FromNum a) where
-    mempty = fromInteger 0
-    mappend = (+)
-
-instance Num a => Group (FromNum a) where
-    minus = (-)
-    gnegate = negate
-    
-instance Num a => MultiplicativeMonoid (FromNum a) where
-    one = fromInteger 1
-    times = (*)
-
-instance Num a => Seminearring (FromNum a)
-    
-instance Num a => Reducer Integer (FromNum a) where
-    unit = fromInteger
-
- rmfile ./dist/doc/html/monoids/src/Data-Ring-FromNum.html hunk ./dist/doc/html/monoids/src/Data-Ring-Number.html 1 - - - - -Data/Ring/Number.hs - - - -
{-# LANGUAGE FlexibleInstances, FlexibleContexts, MultiParamTypeClasses, GeneralizedNewtypeDeriving #-}
-module Data.Ring.Number 
-    ( module Data.Ring
-    , Number(Number, getNumber)
-    ) where
-
-import Data.Ring
-import Data.Monoid.Reducer
-
-newtype Number a = Number { getNumber :: a } deriving (Eq,Show,Num)
-
-instance Num a => Monoid (Number a) where
-    mempty = fromInteger 0
-    mappend = (+)
-
-instance Num a => Group (Number a) where
-    minus = (-)
-    gnegate = negate
-    
-instance Num a => MultiplicativeMonoid (Number a) where
-    one = fromInteger 1
-    times = (*)
-
-instance Num a => Seminearring (Number a)
-    
-instance Num a => Reducer Integer (Number a) where
-    unit = fromInteger
-
- rmfile ./dist/doc/html/monoids/src/Data-Ring-Number.html hunk ./dist/doc/html/monoids/src/Data-Ring-Semi-Near.html 1 - - - - -Data/Ring/Semi/Near.hs - - - -
module Data.Ring.Semi.Near
-    ( module Data.Monoid.Multiplicative
-    , Seminearring
-    ) where
-
-import Data.Monoid.Multiplicative
-import Data.FingerTree
-import Data.Monoid.FromString
-import Data.Monoid.Monad.Identity
-import Data.Monoid.Generator
-import qualified Data.Sequence as Seq
-import Data.Sequence (Seq)
-
-class (MultiplicativeMonoid m, Monoid m) => Seminearring m 
-instance Monoid m => Seminearring [m]
-instance Monoid m => Seminearring (Seq m)
-instance (Measured v m, Monoid m) => Seminearring (FingerTree v m)
-instance Seminearring m => Seminearring (Identity m)
-instance Seminearring m => Seminearring (FromString m)
-
- rmfile ./dist/doc/html/monoids/src/Data-Ring-Semi-Near.html hunk ./dist/doc/html/monoids/src/Data-Ring-Semi-Ord.html 1 - - - - -Data/Ring/Semi/Ord.hs - - - -
{-# LANGUAGE FlexibleInstances, FlexibleContexts, MultiParamTypeClasses, GeneralizedNewtypeDeriving #-}
-----------------------------------------------------------------------
----- |
----- Module      :  Data.Ring.Semi.Ord
----- Copyright   :  (c) Edward Kmett 2009, Conal Elliott 2008
----- License     :  BSD3
----- 
----- Maintainer  :  ekmett@gmail.com
----- Stability   :  experimental
----- 
----- ordered types as semi-rings
-------------------------------------------------------------------------
-
-module Data.Ring.Semi.Ord
-    ( module Data.Ring.Semi
-    , Order(Order,getOrder)
-    , Priority(MinBound,Priority,MaxBound)
-    ) where
-
-import Test.QuickCheck
--- import Control.Applicative
-import Control.Functor.Pointed
-import Data.Ring.Semi
-import Data.Monoid.Ord
-import Data.Monoid.Reducer
-
-newtype Order a = Order { getOrder :: a } deriving (Eq,Ord,Read,Show,Bounded,Arbitrary)
-
-instance (Bounded a, Ord a) => Monoid (Order a) where
-    mappend = max
-    mempty = minBound
-
-instance (Bounded a, Ord a) => MultiplicativeMonoid (Order a) where
-    times = min
-    one = maxBound
-    
-instance (Bounded a, Ord a) => Seminearring (Order a)
-instance (Bounded a, Ord a) => Semiring (Order a)
-instance (Bounded a, Ord a) => Reducer a (Order a) where
-    unit = Order
-
-instance Functor Order where
-    fmap f (Order a) = Order (f a)
-
-instance Pointed Order where
-    point = Order
-
-instance Copointed Order where
-    extract = getOrder
-
-
-
-
-
-
-
-data Priority a = MinBound | Priority a | MaxBound deriving (Eq,Read,Show)
-
-instance Bounded (Priority a) where
-    minBound = MinBound
-    maxBound = MaxBound
-
-instance Ord a => Ord (Priority a) where
-  MinBound   <= _         = True
-  Priority _ <= MinBound  = False
-  Priority a <= Priority b = a <= b
-  Priority _ <= MaxBound  = True
-  MaxBound   <= MaxBound  = True
-  MaxBound   <= _         = False
-
-  MinBound   `min` _          = MinBound
-  _          `min` MinBound   = MinBound
-  Priority a `min` Priority b = Priority (a `min` b)
-  u          `min` MaxBound   = u
-  MaxBound   `min` v          = v
-  
-  MinBound   `max` v          = v
-  u          `max` MinBound   = u
-  Priority a `max` Priority b = Priority (a `max` b)
-  _          `max` MaxBound   = MaxBound
-  MaxBound   `max` _          = MaxBound
-
-instance Arbitrary a => Arbitrary (Priority a) where
-  arbitrary = frequency [ (1 ,return MinBound)
-                        , (10, fmap Priority arbitrary)
-                        , (1 ,return MaxBound) ]
-  coarbitrary MinBound    = variant 0
-  coarbitrary (Priority a) = variant 1 . coarbitrary a
-  coarbitrary MaxBound    = variant 2
-
-instance Ord a => Monoid (Priority a) where
-    mappend = max
-    mempty = minBound
-
-instance Ord a => MultiplicativeMonoid (Priority a) where
-    times = min
-    one = maxBound
-
-instance Ord a => Seminearring (Priority a)
-instance Ord a => Semiring (Priority a)
-
-instance Ord a => Reducer a (Priority a) where
-    unit = Priority
-
-instance Ord a => Reducer (MinPriority a) (Priority a) where
-    unit (MinPriority Nothing)  = MaxBound
-    unit (MinPriority (Just x)) = Priority x
-
-instance Ord a => Reducer (MaxPriority a) (Priority a) where
-    unit (MaxPriority Nothing)  = MinBound
-    unit (MaxPriority (Just x)) = Priority x
-
-instance Functor Priority where
-    fmap _ MaxBound = MaxBound
-    fmap f (Priority a) = Priority (f a)
-    fmap _ MinBound = MinBound
-
-instance Pointed Priority where
-    point = Priority
-
- rmfile ./dist/doc/html/monoids/src/Data-Ring-Semi-Ord.html hunk ./dist/doc/html/monoids/src/Data-Ring-Semi.html 1 - - - - -Data/Ring/Semi.hs - - - -
module Data.Ring.Semi
-    ( module Data.Ring.Semi.Near
-    , Semiring
-    ) where
-
-import Data.Ring.Semi.Near
-
-class Seminearring a => Semiring a
-
-
- rmfile ./dist/doc/html/monoids/src/Data-Ring-Semi.html hunk ./dist/doc/html/monoids/src/Data-Ring-Sugar.html 1 - - - - -Data/Ring/Sugar.hs - - - -
module Data.Ring.Sugar 
-    ( module Data.Monoid.Multiplicative.Sugar
-    , module Data.Ring.Semi.Near
-    ) where
-
-import Data.Monoid.Multiplicative.Sugar
-import Data.Ring.Semi.Near
-
- rmfile ./dist/doc/html/monoids/src/Data-Ring-Sugar.html hunk ./dist/doc/html/monoids/src/Data-Ring.html 1 - - - - -Data/Ring.hs - - - -
{-# OPTIONS_GHC -fno-warn-orphans #-}
-module Data.Ring
-    ( module Data.Group
-    , module Data.Ring.Semi
-    ) where
-
-import Data.Group
-import Data.Ring.Semi
-
-class (Group a, Semiring a) => Ring a
-
--- todo: the Boolean Ring (with symmetric difference as addition)
--- use Data.Ring.Semi.Ord.Order Bool to get the and/or based Boolean distribuive lattice semiring
-
-instance Monoid Bool where
-    mempty = False
-    a `mappend` b = (a || b) && not (a && b)
-
-instance Group Bool where
-    gnegate = not
-
-instance MultiplicativeMonoid Bool where
-    one = True
-    times = (&&)
-
-instance Seminearring Bool
-instance Semiring Bool
-instance Ring Bool
-
- rmfile ./dist/doc/html/monoids/src/Data-Ring.html hunk ./dist/doc/html/monoids/src/Data-Seminearring-Sugar.html 1 - - - - -Data/Seminearring/Sugar.hs - - - -
module Data.Seminearring.Sugar 
-    ( module Data.Monoid.Multiplicative.Sugar
-    , module Data.Seminearring
-    ) where
-
-import Data.Monoid.Multiplicative.Sugar
-import Data.Seminearring
-
- rmfile ./dist/doc/html/monoids/src/Data-Seminearring-Sugar.html hunk ./dist/doc/html/monoids/src/Data-Seminearring.html 1 - - - - -Data/Seminearring.hs - - - -
module Data.Seminearring
-    ( module Data.Monoid.Multiplicative
-    , Seminearring
-    ) where
-
-import Data.Monoid.Multiplicative
-import Data.FingerTree
-import Data.Monoid.FromString
-import Data.Monoid.Monad.Identity
-import Data.Monoid.Generator
-import qualified Data.Sequence as Seq
-import Data.Sequence (Seq)
-
-class (MultiplicativeMonoid m, Monoid m) => Seminearring m 
-instance Monoid m => Seminearring [m]
-instance Monoid m => Seminearring (Seq m)
-instance (Measured v m, Monoid m) => Seminearring (FingerTree v m)
-instance Seminearring m => Seminearring (Identity m)
-instance Seminearring m => Seminearring (FromString m)
-
--- class Absorbing m where isZero :: m -> Bool
-
- rmfile ./dist/doc/html/monoids/src/Data-Seminearring.html hunk ./dist/doc/html/monoids/src/hscolour.css 1 -.hs-keyglyph, .hs-layout {color: red;} -.hs-keyword {color: blue;} -.hs-comment, .hs-comment a {color: green;} -.hs-str, .hs-chr {color: teal;} -.hs-keyword, .hs-conid, .hs-varid, .hs-conop, .hs-varop, .hs-num, .hs-cpp, .hs-sel, .hs-definition {} rmfile ./dist/doc/html/monoids/src/hscolour.css rmdir ./dist/doc/html/monoids/src rmdir ./dist/doc/html/monoids rmdir ./dist/doc/html rmdir ./dist/doc }