module Monad:This module provides everything needed to write and execute computations in the Option monad.sig
..end
type'a
m ='a option
val return : 'a -> 'a m
return x
puts a value in the Option monad, that is, returns Some x
.val bind : 'a m -> ('a -> 'b m) -> 'b m
bind m f
combines the calculation result m
with the function f
.
E.g, in the Option monad :
bind (Some 1) (fun x -> if x = 1 then Some 4 else None)
returns Some 4.