Choice.Makeval accept : 'a -> 'a M.taccept x accepts x as a result of computation. (Same as pure x.
val reject : unit -> 'a M.treject () rejects the rest of computation sequence, and terminate the computation with the zero result (Same as zero ()
val guard : bool -> unit M.tguard cond ensures cond is true in the rest of computation. Otherwise the rest of the computation is rejected.