public static function comparable(?string $keyType = null, ?string $valueType = null): SortedTable
    {
        assert(
            Validate::isNull($keyType) || Validate::implementsInterface($keyType, Comparable::class),
            sprintf('%s expects $keyType to implement %s', __METHOD__, Comparable::class)
        );

        return new static(new ComparableComparator(), $keyType, $valueType);
    }