If two DataType values are equal, they are the same type since DataType is sealed and we only have the above case object instances.
If two DataType values are equal, they are the same type since DataType is sealed and we only have the above case object instances. If they are the same, then their Elem types are the same