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