private function hydrate(): void
    {
        if (null !== $this->values) {
            return;
        }

        $values = \call_user_func_array($this->callable, $this->callableArgs);

        if (false === \is_array($values)) {
            throw new InvalidArgumentException(
                'Dictionary callable must return an array or an instance of ArrayAccess.'
            );
        }

        $this->values = $values;
    }