On record types, ToString() and other compiler-synthesized methods cannot be overridden up the inheritance hierarchy in parent records, but must be overridden in the concrete record.
Domain Primitives are a stand-alone low-risk way to incrementally fortify your application, without the risk and complexity of introducing concepts like DDD, algebraic data types or immutability.