One term of an order space: the scheme’s term, labelled with the target
it was made under.
Under a marker from target the label is a zero-sized
type, so two terms of different targets cannot meet in
OrderSpace::compare: that does not compile, and nor does a term of a
space that places nulls in a plain space’s comparison, or a term of a
nulls-first space in a nulls-last space’s, since the policy is part of
the Nulls label’s type. Under an OrderTarget the label is
stored, and two of different targets compare as None instead of as
noise. A RuntimeNulls label stores its policy beside its target,
so a nulls-first and a nulls-last term of it compare as None too. Storage reads
the scheme’s bytes through AsRef<[u8]>, and raw is the
scheme’s term itself.
== compares the stored term, byte for byte, not the value: the order
of two values is OrderSpace::compare, and a randomised scheme
(block ORE carries a nonce) gives one value many terms, which compare
Equal and are not ==.