Data equality & toString
A modddel is always immutable, and it correctly overrides operator ==
and hashCode
for data equality. Two modddels are equal if they are instances of the same union-case, hold the same properties, and hold the same failures if it's an invalid-step union-case. Internally, the modddel uses equatable
for data equality.
The toString
method is also overridden, and lists all the properties of the modddel ± its failures.