public function push(string $value) : core\collections\interfaces\Map
    {
        // Grab an Argument for the next index. If we get null here, it means there are no further Arguments
        // that accept values present.
        if (!$argument = $this->definitions->getNextDefinition($this)) {
            throw new exceptions\ArgumentsTooMany($this);
        }

        // Now that we know how to map the Argument via its name, we can safely set its value. Set() will also
        // resolve the case of parameters accepting multiple values.
        return $this->set($argument->getName(), $value);
    }