public static function truncate(int $minLength = null, int $maxLength = null)
    {
        if (0 >= $maxLength) {
            throw new \InvalidArgumentException(
                    'Max length must be greater than 0, otherwise truncation doesn\'t make sense'
            );
        }

        $self = new self($minLength, $maxLength);
        $self->allowsTruncate = true;
        return $self;
    }