Module Std.Monoid

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 : Core_kernel.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.