Make.M
type 'a t
val pure : 'a -> 'a t
pure x creates a computation that results in x.
pure x
x
val zero : unit -> 'a t
zero () creates a computation that has no result.
zero ()