On Tuesday, 12 January 2016 at 19:13:29 UTC, John Colvin wrote:
On Tuesday, 12 January 2016 at 19:00:11 UTC, Andrei
Alexandrescu wrote:
On 01/12/2016 01:27 PM, John Colvin wrote:
Preorder or partial order: not possible in D, opCmp insists
on totality.
The way I look at it, a partial order would implement opCmp
and opEqual such that a < b, b < a, and a == b are
simultaneously false for unordered objects. Would that float
your boat? -- Andrei
a<=b and b<=a must also be false. That would work for a partial
order, yes. Unfortunately, that's not possible with the current
opCmp design, hence my 2 suggestions for improvements (I'm
pretty sure the second one is better).
The key thing is to have a design that doesn't enforce totality.
s/totality/reflexivity
which also implies it can't force totality. Note that a
non-reflexive <= doesn't imply anything about ==.