Added whenM, untilM, and forever monadic combinators