Computations which may return 0, 1, or more possible results.
Binding strategy: The bound function is applied to all possible values in the input list and the resulting lists are concatenated to produce a list of all possible results.
Useful for: Building computations from sequences of non-deterministic operations. Parsing ambiguous grammars is a common example.
bind function for List
The behavior is the same as the concatMap
fail function for List
return function for List