Transform/extension methods

New phase ported: extension methods
The whole imperative annotations thing is not ideal. We should try to make annotations immutable.