(* Monadic return for option type. Trivially boxes the variable of type 'a into a 'a option by applying the Some constructor. *)
valreturn:'a->'aoption
(* Monadic return for option type. Trivially boxes the variable of type 'a into a 'a option by applying the Some constructor. *)
val(~=):'a->'aoption
(* Monadic bind for option type. Passes the 'a stored within the 'a option through the supplied function. If the first argument is None, the result is None. *)
valbind:'aoption->('a->'boption)->'boption
(* Monadic bind for option type. Passes the 'a stored within the 'a option through the supplied function. If the first argument is None, the result is None. *)
val(>>=):'aoption->('a->'boption)->'boption
(* Binary operator, applied to the variables of type 'a and 'b respectively in the first two arguments. *)