(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (FuncDef
      name: _compare
      body: 
        (BraceGroup
          children: [
            (C {(set)} {(Lit_Other '+') (o)} {(errexit)})
            (SimpleCommand
              words: [{(DQ ($ VSub_At '$@'))}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(_tmp/left.txt)} spids:[67])]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:left_status)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [73]
                )
              ]
              spids: [71]
            )
            (SimpleCommand
              words: [{(bin/osh)} {(DQ ($ VSub_At '$@'))}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(_tmp/right.txt)}
                  spids: [84]
                )
              ]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:right_status)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [90]
                )
              ]
              spids: [88]
            )
            (C {(set)} {(-o)} {(errexit)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [(C {(diff)} {(-u)} {(_tmp/left.txt)} {(_tmp/right.txt)})]
                          negated: True
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(FAIL)})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 116]
                )
              ]
              spids: [16777215 129]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {($ VSub_Name '$left_status')} {(KW_Bang '!') (Lit_Other '=')} 
                          {($ VSub_Name '$right_status')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ('FAIL: Got status ') ($ VSub_Name '$right_status') (' but expected ') 
                          ($ VSub_Name '$left_status')
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 145]
                )
              ]
              spids: [16777215 163]
            )
            (C {(echo)} {(PASS)})
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [51]
        )
      spids: [47 50]
    )
    (FuncDef
      name: version-text
      body: (BraceGroup children:[(C {(_compare)} {(test/spec.sh)} {(version-text)})] spids:[192])
      spids: [188 191]
    )
    (FuncDef
      name: count
      body: 
        (BraceGroup
          children: [
            (C {(_compare)} {(scripts/count.sh)} {(all)})
            (C {(_compare)} {(scripts/count.sh)} {(parser)})
            (C {(_compare)} {(scripts/count.sh)} {(parser-port)})
            (C {(_compare)} {(scripts/count.sh)} {(runtime)})
          ]
          spids: [211]
        )
      spids: [207 210]
    )
    (FuncDef
      name: one-spec-test
      body: 
        (BraceGroup
          children: [(C {(_compare)} {(test/spec.sh)} {(builtins-special)})]
          spids: [251]
        )
      spids: [247 250]
    )
    (FuncDef
      name: html-summary
      body: 
        (BraceGroup
          children: [(C {(_compare)} {(test/spec-runner.sh)} {(html-summary)})]
          spids: [270]
        )
      spids: [266 269]
    )
    (FuncDef
      name: configure
      body: (BraceGroup children:[(C {(_compare)} {(./configure)})] spids:[286])
      spids: [282 285]
    )
    (FuncDef
      name: no-op
      body: (BraceGroup children:[(C {(_compare)} {(scripts/count.sh)})] spids:[300])
      spids: [296 299]
    )
    (FuncDef
      name: gen-module-init
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:modules)
                  op: Equal
                  rhs: {(SQ <'time datetime'>)}
                  spids: [319]
                )
              ]
              spids: [317]
            )
            (C {(_compare)} {(build/actions.sh)} {(gen-module-init)} {($ VSub_Name '$modules')})
          ]
          spids: [314]
        )
      spids: [310 313]
    )
    (FuncDef
      name: wild
      body: 
        (BraceGroup
          children: [(C {(_compare)} {(test/wild.sh)} {(all)} {(SQ <'^distro/usr-bin'>)})]
          spids: [340]
        )
      spids: [336 339]
    )
    (FuncDef
      name: startup-benchmark
      body: 
        (BraceGroup
          children: [(C {(_compare)} {(benchmarks/startup.sh)} {(compare-strace)})]
          spids: [375]
        )
      spids: [371 374]
    )
    (FuncDef
      name: glob
      body: (BraceGroup children:[(C {(_compare)} {(gold/glob.sh)})] spids:[391])
      spids: [387 390]
    )
    (FuncDef
      name: nix
      body: 
        (BraceGroup
          children: [(C {(_compare)} {(gold/nix.sh)} {(isElfSimpleWithStdin)})]
          spids: [405]
        )
      spids: [401 404]
    )
    (FuncDef
      name: readonly_
      body: (BraceGroup children:[(C {(_compare)} {(gold/readonly.sh)})] spids:[421])
      spids: [417 420]
    )
    (FuncDef
      name: complex-here-docs
      body: (BraceGroup children:[(C {(_compare)} {(gold/complex-here-docs.sh)})] spids:[435])
      spids: [431 434]
    )
    (FuncDef
      name: comments
      body: 
        (BraceGroup
          children: [(Sentence child:(C {(_compare)} {(gold/comments.sh)}) terminator:<Op_Semi ';'>)]
          spids: [449]
        )
      spids: [445 448]
    )
    (FuncDef
      name: export
      body: 
        (BraceGroup
          children: [(Sentence child:(C {(_compare)} {(gold/export.sh)}) terminator:<Op_Semi ';'>)]
          spids: [462]
        )
      spids: [458 461]
    )
    (FuncDef
      name: dollar-sq
      body: 
        (BraceGroup
          children: [(Sentence child:(C {(_compare)} {(gold/dollar-sq.sh)}) terminator:<Op_Semi ';'>)]
          spids: [478]
        )
      spids: [474 477]
    )
    (FuncDef
      name: declare
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: (C {(_compare)} {(gold/declare.sh)} {(demo)})
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [495]
        )
      spids: [491 494]
    )
    (FuncDef
      name: scope
      body: 
        (BraceGroup
          children: [(Sentence child:(C {(_compare)} {(gold/scope.sh)}) terminator:<Op_Semi ';'>)]
          spids: [514]
        )
      spids: [510 513]
    )
    (FuncDef
      name: all
      body: 
        (BraceGroup
          children: [
            (C {(version-text)})
            (C {(comments)})
            (C {(readonly_)})
            (C {(count)})
            (C {(one-spec-test)})
            (C {(html-summary)})
            (C {(configure)})
            (C {(no-op)})
            (C {(gen-module-init)})
            (C {(glob)})
            (C {(complex-here-docs)})
            (C {(wild)})
          ]
          spids: [528]
        )
      spids: [524 527]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)