Module type Alternative.ALTERNATIVE

Module type for abstract datatypes with an associative operator and a left and right identity element for choosing between values.

type 'a t
val empty : 'a t

The identity element of (<|>).

val alt : 'a t -> 'a t -> 'a t

alt a1 a2 is a1 if it is not empty, and a2 otherwise.

val (<|>) : 'a t -> 'a t -> 'a t

Infix synonym of alt.