And I tried to apply it to the haskell fay compiler, but failed:
http://stackoverflow.com/questions/18667530/dont-understand-this-liftm2-behaviour-in-fayNot sure whether it's a fay bug or something about the fay monad or liftM2 which i don't understand.