Re: framework for composing monads?