Yes, that non-global issue was the exact issue I was referring to. It drives me nuts whenever I try to give in and use templates. Regarding your "fix": Is it *really* intended that user should say arr.filter((typeof(some_random_expression) x) => x < y); instead of arr.filter(x => x < y); ? I think it's pretty obvious why that doesn't really work in practice...