I misread this as `a.toJSONValue()` at first, which would have been wrong. Can you put in a test that makes it clear that two different custom types whose `x.toJSONValue()` return identical structures are not equal?