private function array(array $value): string
    {
        if ($this->callable && is_callable($value)) {
            $class = ! is_string($value[0])
                ? $this->classname($value[0])
                : $value[0];

            $method = $value[1];

            return sprintf('function %s::%s()', $class, $method);
        }

        $slice = array_slice($value, 0, $this->arrlim, true);

        $elems = $this->isAssociative($slice)
            ? array_map([$this, 'arrayPair'], array_keys($slice), $slice)
            : array_map([$this, 'arrayValue'], $slice);

        return vsprintf('[%s%s]', [
            implode(', ', $elems),
            count($value) > $this->arrlim ? ', ...' : '',
        ]);
    }