Local variable scoping ====================== With type inferrence (including name-based type inferrence), it is possible to end up with code like this: if is_red item <- red_item else item <- blue_item end add items item Should it require a declaration before the `if`? Loops DON'T have the same issue! for item in items process_item item last <- item end # Compilation error: `last` might not be set at this point set_active_item last