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

        return new static(new ComparableComparator(), $itemType);
    }