The following code: ```rescript for i in 1 to 5 { let a = ref(None) if i == 3 { a := Some(3) } Js.log(a.contents) } ``` gets compiled to: ```javascript for(var i = 1; i <= 5; ++i){ var a; if (i === 3) { a = 3; } console.log(a); } ``` [rescript playground](https://rescript-lang.org/try?version=v11.0.1&code=GYewTgBAltB2EEYIBcQQKwQN4CgIQBsBTZCAQwgF4IwjgAKAORFiIEo9phorqBmbJ3wUAXNQDKIALZF6fDvgC+nAFIBnAHQEQAc3pkNAYxbIisZGo7KgA) [reason playground](https://reasonml.github.io/en/try?rrjsx=true&reason=GYewTgBAFAlhMDsIEYIBcQQKwEoIG8AoCCAGwFM0IBDCAXgjHOCgDkQFydj5ho46DAMx4iJErQBcDAMogAtuSgieAXx4ApAM4A6UiADmUajoDGHNOQRot3dUA) Expected result: Variable `a` is re-initialized to `undefined` in each iteration of the loop. ``` undefined undefined 3 undefined undefined ``` Actual result: ``` undefined undefined 3 3 3 ``` Correct compilation result should be: ```javascript for(var i = 1; i <= 5; ++i){ var a = undefined; if (i === 3) { a = 3; } console.log(a); } ```