Choice.S
The unary choice monad interface
val accept : 'a -> 'a t
accept x
accepts x
as a result of computation. (Same as pure x
.
val reject : unit -> 'a t
reject ()
rejects the rest of computation sequence, and terminate the computation with the zero
result (Same as zero ()
val guard : bool -> unit t
guard cond
ensures cond
is true
in the rest of computation. Otherwise the rest of the computation is rejected.