module Literal:Literals are unique identifiers.Id.T
The compare operation on literals has the property that no literal
is considered between a literal and the negation of that literal.
That is, if you sort a list of literals then literals and their
negations (if present) will be adjacent.
type t
val invalid : tval is_valid : t -> bool
val equal : t -> t -> bool
equal x y = (x = y)val hash : t -> int
val compare : t -> t -> intcompare x y is an arbitrary order for x and y
Id.T.is_valid xId.T.is_valid y(compare x y = 0) = (x = y)