public static function concat($params = null)
    {
        $args = func_get_args();

        if(!is_null($params)){
            if($params instanceof A || $params instanceof H){
                $args = array_values($params->array); //beware of H case
            } elseif(is_array($params)){
                $args = $params;
            } 
        }
        $str_out = '';

        foreach ($args as $s) {
            self::mustBeStringOrScalar($s);
            $str_out .= $s;
        }

        return new S($str_out);
    }