``` for k of A:: when k isnt constructor then ``` compiles to ``` var k; for (k in A.prototype.when(k !== constructor)) {} ``` and ``` if A:: then 2 ``` produces a parse error