Here I manage the array comprehension as a list stack (the same way I do below for the block scoping). Though, there has been a bug when I tried to push it to `funct["compArray"]` or something that looks like that, so I made it to `state` singleton, as `state.compArray` property. The difficulty here was to define a way for variables to be used before being declared, while still checking the environment for conflicts (so each scope is also a state machine). You may want me to do it using another pattern here, closer to the funct singleton you wrote.