(command.CommandList
  children: [
    (C {<Id.KW_Set set>} {<-o>} {<nounset>})
    (C {<Id.KW_Set set>} {<-o>} {<pipefail>})
    (C {<Id.KW_Set set>} {<-o>} {<errexit>})
    (C {<source>} {<test/common.sh>})
    (command.ShFunction
      name: _compare
      body: 
        (command.BraceGroup
          children: [
            (C {<Id.KW_Set set>} {<Id.Lit_Other '+'> <o>} {<errexit>})
            (command.Simple
              words: [{(DQ ($ Id.VSub_At '$@'))}]
              redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<_tmp/shebang.txt>})]
            )
            (C {<local>} {<Id.Lit_VarLike 'expected_status='> ($ Id.VSub_QMark '$?')})
            (command.Simple
              words: [{($ Id.VSub_DollarName '$OSH')} {(DQ ($ Id.VSub_At '$@'))}]
              redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<_tmp/osh.txt>})]
            )
            (C {<local>} {<Id.Lit_VarLike 'osh_status='> ($ Id.VSub_QMark '$?')})
            (C {<Id.KW_Set set>} {<-o>} {<errexit>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [(C {<diff>} {<-u>} {<_tmp/shebang.txt>} {<_tmp/osh.txt>})]
                          negated: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<echo>} {<FAIL>})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [111 124]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<test>} {($ Id.VSub_DollarName '$expected_status')} 
                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$osh_status')}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<echo>} 
                      {
                        (DQ <'FAIL: Got status '> ($ Id.VSub_DollarName '$osh_status') 
                          <' but expected '> ($ Id.VSub_DollarName '$expected_status')
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [141 153]
                )
              ]
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
        )
    )
    (command.ShFunction
      name: version-text
      body: (command.BraceGroup children:[(C {<_compare>} {<test/spec.sh>} {<version-text>})])
    )
    (command.ShFunction
      name: count
      body: 
        (command.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>})
          ]
        )
    )
    (command.ShFunction
      name: one-spec-test
      body: (command.BraceGroup children:[(C {<_compare>} {<test/spec.sh>} {<builtins-special>})])
    )
    (command.ShFunction
      name: html-summary
      body: (command.BraceGroup children:[(C {<_compare>} {<test/spec-runner.sh>} {<html-summary>})])
    )
    (command.ShFunction
      name: gen-module-init
      body: 
        (command.BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'modules='> (SQ <'time datetime'>)})
            (C {<_compare>} {<build/actions.sh>} {<gen-module-init>} {($ Id.VSub_DollarName '$modules')})
          ]
        )
    )
    (command.ShFunction
      name: wild
      body: 
        (command.BraceGroup
          children: [(C {<_compare>} {<test/wild.sh>} {<all>} {(SQ <'^distro/usr-bin'>)})]
        )
    )
    (command.ShFunction
      name: startup-benchmark
      body: 
        (command.BraceGroup
          children: [(C {<_compare>} {<benchmarks/startup.sh>} {<compare-strace>})]
        )
    )
    (command.ShFunction
      name: configure
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<./configure>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: nix
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/nix.sh>} {<isElfSimpleWithStdin>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: and-or
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/and-or.sh>} {<test-simple>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: comments
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/comments.sh>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: readonly_
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/readonly.sh>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: export
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/export.sh>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: glob
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/glob.sh>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: no-op
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<scripts/count.sh>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: complex-here-docs
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/complex-here-docs.sh>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: strip-op-char-class
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/strip-op-char-class.sh>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: echo-e
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/echo-e.sh>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: dollar-sq
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/dollar-sq.sh>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: word-eval
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/word-eval.sh>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: abuild
      body: 
        (command.BraceGroup
          children: [(C {<_compare>} {<gold/abuild.sh>} {<is_function>} {<is_function>})]
        )
    )
    (command.ShFunction
      name: declare
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/declare.sh>} {<demo>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: scope
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_compare>} {<gold/scope.sh>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (C {<readonly>} {<-a>} 
      {<Id.Lit_VarLike 'PASSING='> 
        (sh_array_literal
          left: <Id.Op_LParen _>
          words: [
            {<configure>}
            {<nix>}
            {<and-or>}
            {<comments>}
            {<readonly_>}
            {<export>}
            {<glob>}
            {<no-op>}
            {<complex-here-docs>}
            {<echo-e>}
            {<dollar-sq>}
            {<word-eval>}
            {<strip-op-char-class>}
            {<abuild>}
            {<count>}
            {<one-spec-test>}
            {<html-summary>}
            {<gen-module-init>}
          ]
        )
      }
    )
    (command.ShFunction
      name: all-passing
      body: 
        (command.BraceGroup
          children: [
            (C {<run-all>} 
              {
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Name PASSING>
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: run-for-release
      body: 
        (command.BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'out_dir='> <_tmp/gold>})
            (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$out_dir')})
            (command.Pipeline
              children: [(C {<all-passing>}) (C {<tee>} {($ Id.VSub_DollarName '$out_dir') </log.txt>})]
              negated: F
            )
            (C {<echo>} {(DQ <'Wrote '> ($ Id.VSub_DollarName '$out_dir') </log.txt>)})
          ]
        )
    )
    (C {(DQ ($ Id.VSub_At '$@'))})
  ]
)