provide implementations of ==.
TODO about parents and equality.
bitmix(x,y) => hash(x,y)
give everything a parent pointer

this is very convenient and makes lots of things (jQuery-style
selectors, etc.) easier to implement.
parse parents
export more things
update tests to handle parents