Improves (uh, kinda) the code generated from monadic method calls

The generated code now wraps the value returned from the method call in
a new monad instance, which is what it should do.

Generated code is *hella* ugly now, though. TBFixed