fixed partial movement in apply(~self)

the little trick of promotive the fields of the environment structure to
local variables in the closure body was casing partial movement of self
when generating sequential let bindings. The trick is now accomplished by
destructuring self in one go.