(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:-1 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:-1 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: [-1 116]
                )
              ]
              spids: [-1 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: [-1 145]
                )
              ]
              spids: [-1 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)} {(parse-usr-bin)})] spids:[340])
      spids: [336 339]
    )
    (FuncDef
      name: startup-benchmark
      body: 
        (BraceGroup
          children: [(C {(_compare)} {(benchmarks/startup.sh)} {(compare-strace)})]
          spids: [371]
        )
      spids: [367 370]
    )
    (FuncDef
      name: glob
      body: (BraceGroup children:[(C {(_compare)} {(gold/glob.sh)})] spids:[387])
      spids: [383 386]
    )
    (FuncDef
      name: nix
      body: 
        (BraceGroup
          children: [(C {(_compare)} {(gold/nix.sh)} {(isElfSimpleWithStdin)})]
          spids: [401]
        )
      spids: [397 400]
    )
    (FuncDef
      name: all
      body: 
        (BraceGroup
          children: [
            (C {(version-text)})
            (C {(count)})
            (C {(one-spec-test)})
            (C {(html-summary)})
            (C {(configure)})
            (C {(no-op)})
            (C {(gen-module-init)})
            (C {(wild)})
            (C {(startup-benchmark)})
            (C {(glob)})
          ]
          spids: [417]
        )
      spids: [413 416]
    )
    (C {(DQ ($ VSub_At "$@"))})
  ]
)