| Haskell Hierarchical Libraries (base package) | Contents | Index

Data.Monoid

Portability | non-portable (requires extended type classes)
Stability | experimental
Maintainer | libraries@haskell.org

Description
Declaration of the Monoid class, and instances for list and functions. Inspired by the paper Functional Programming with Overloading and Higher-Order Polymorphism, Mark P Jones (http://www.cse.ogi.edu/~mpj/) Advanced School of Functional Programming, 1995.
Synopsis

class Monoid a where

mempty :: a
mappend :: a -> a -> a
mconcat :: [a] -> a

Documentation
class Monoid a where

The monoid class. A minimal complete definition must supply `mempty` and `mappend`, and these should satisfy the monoid laws.
Methods

mempty :: a
Identity of `mappend`
mappend :: a -> a -> a
An associative operation
mconcat :: [a] -> a
Fold a list using the monoid. For most types, the default definition for `mconcat` will be used, but the function is included in the class definition so that an optimized version can be provided for specific types.

Instances

Monoid [a]
Monoid (a -> a)
Monoid ()

Produced by Haddock version 0.6