Hi, (accidentally replied to only OP)... > On Sep 15, 2017, at 1:35 PM, ilija.tov...@me.com wrote: > > Hi Marco > > I can see it’s usefulness in this case. > > But wouldn’t it be better to implement this by hand in these rare cases (it’s > 3 lines of code) instead of encouraging the pollution of the symbol table by > unknown input? It’s also clearer since people who don’t know the `extract` > function probably don’t expect it to mutate the local symbol table.
This argument is predicated on the assumption that my input is unknown. This assumption is not universal to all codebases as implied. There are many "foot guns" in every language and framework. I don't think it is necessary (or wise) for the language to assume responsibility for abuse. This is the same line of reasoning that could be used to justify removing serialize/deserialize because a developer could "accidentally a tent" or we could build safer options into the feature (as you've already described) Just my 2c