Module Generic_util.Monoid

module Monoid: Generic_util_monoid
Monoid and instances for integers, floats, booleans, options, lists.

module T: sig .. end
A monoid is given by a neutral element and a binary operation that should satisfy the laws:
include T
type 't t = 't monoid 
val int_sum : int monoid
Additive monoid.
val int_prod : int monoid
Multiplicative monoid.
val float_sum : float monoid
Additive monoid.
val float_prod : float monoid
Multiplicative monoid.
val all : bool monoid
Boolean monoid under conjunction.
val any : bool monoid
Boolean monoid under disjunction.
val first : 'a option monoid
Option monoid returning the leftmost non-Nothing value.
val last : 'a option monoid
Option monoid returning the rightmost non-Nothing value.
val list : 'a list monoid
List monoid