public static function fromNative()
    {
        $array = \func_get_arg(0);
        $items = array();

        foreach ($array as $item) {
            if ($item instanceof \Traversable || \is_array($item)) {
                $items[] = static::fromNative($item);
            } else {
                $items[] = new StringLiteral(\strval($item));
            }
        }

        $fixedArray = \SplFixedArray::fromArray($items);

        return new static($fixedArray);
    }