Yes I know lenses do something similar. But they are restricted to lenses in the same way the other proposal is restricted to functions you couldn't write >[1,2,3] . 0 1 and also I don't think they solve the name collision problem either. silvio