If all you want is simple unification as described above, you might want to check out my
Data::Binder data structure. It's not a complicated module, but it helps when I want to collect a number of tuples unless they conflict.
--
[ e d @ h a l l e y . c c ]