(CommandList
  children: [
    (C {(set)} {(-o)} {(pipefail)})
    (ForEach
      iter_name: arg
      iter_words: [{(DQ ($ VSub_At "$@"))}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {($ VSub_Name "$arg")}
                              right: {(Lit_Other "*") (.gz)}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(gunzip)} {(-c)} {(DQ (${ VSub_Name arg))})]
                  spids: [-1 82]
                )
              ]
              else_action: [(C {(cat)} {(DQ (${ VSub_Name arg))})]
              spids: [96 108]
            )
          ]
          spids: [65 110]
        )
      spids: [59 63]
    )
  ]
)