Added the fail function to monads.
Monad constructos are unified: got rid of 'monad-plus' and 'define-monad-plus'.