add inline class definitions to unions for more concise ADT
add hashing for classes/objects
a few more tests for hashability/equality
update readme