As discussed during our today meeting, here is an implementation of toString, equals and hashCode that can be used as default implementation of these methods for value types.
There is also similar code in the Amber repo for records. At some point, we should have a bake-off and pick the best implementation; surely we should only have one.
