All the types that implement this protocol.
@type t() :: term()
@spec compare(t(), t()) :: :lt | :eq | :gt