rewrite uniquify so that it doesn't use walk anymore, we can use binding instead of doing the manual cleanup, fixes #TANAL-15