package monadlib
Module type Monad.BaseLazyPlus
LazyPlus is another base module useful when the monad is a lazy data structure. We then allow the plus operation to be non-strict in its second argument, which makes it possible to use functions such as Monad.lsum lazily. This is what you want for lazy lists.
val zero : unit -> 'a mval null : 'a m -> boolnull x implies that x is zero. If you do not want to or cannot answer whether a given x is zero, then null x should be false.