% $Id: ListMonad.oz,v 1.2 2008/01/05 20:03:58 leavens Exp leavens $ functor $ export return: Return bind: Bind failWith: FailWith define fun {Return E} [E] end fun {Bind L F} case L of nil then nil [] X|Xs then {Append {F X} {Bind Xs F}} end end fun {FailWith S} nil end end