public function unshift(...$values)
    {
        foreach ($values as $value) {
            //Ensure the correct type is provided
            $this->checkType($value);
        }

        //This implementation maintains support for HHVM
        foreach (array_reverse($values) as $value) {
            array_unshift($this->items, $value);
        }

        return $this;
    }