Module Monads.Std.Monoid

module Monoid: sig .. end
A monoid set.

A monoid is a set closed under an associative binary operation plus and a zero element that is neutral to the plus operation.

Good examples are numeric types with addition and zero, or multiplication and one, see Monoid.Int.Sum, Monoid.Int.Product, Monoid.Float.Sum, Monoid.Float.Product.

Containers are also usually form a monoid with an empty container being a neutral element, and the being the closure, e.g., Monoid.List, Monoid.Stack, Monoid.String, Monoid.Set.


module type Base = sig .. end
The minimal monoid interface
module type S = sig .. end
The monoid interface
module Make (M : Base) : S  with type t := M.t
Make(Base) derives a monoid from its minimal definition
module Unit: S  with type t = unit
a trivial monoid
module TList (T : Std.T) : sig .. end
Concretizes 'a list to T.t list
module Stack: sig .. end
A list monoid that accumulates data in a reversed order.
module List: sig .. end
A monoid that accumulates data in a list.
module String: S  with type t = string
A monoid on strings.
module Set: sig .. end
A set monoind.
module Int: sig .. end
Provides monoids in the Z domain.
module Float: sig .. end
Provides monoids in the R domain.