This is what I'm doing with plastic [1], though it also has some semantic differences: strict instead of lazy, monads become objects.
edit: Having looked at Reason more closely, I now see where the confusion came from. Sorry, I didn't mean to deceive you.