(command.CommandList
  children: [
    (C {(Id.KW_Set set)} {(-o)} {(nounset)})
    (C {(Id.KW_Set set)} {(-o)} {(pipefail)})
    (C {(Id.KW_Set set)} {(-o)} {(errexit)})
    (command.ShFunction
      name: install
      body: 
        (command.BraceGroup
          children: [
            (C {(sudo)} {(apt)} {(install)} {(linux-tools-common)} {(linux-tools-4.13.0-36-generic)} 
              {(linux-tools-generic)}
            )
          ]
        )
    )
    (command.ShFunction
      name: debug-symbols
      body: 
        (command.BraceGroup
          children: [
            (C {(sudo)} {(apt)} {(install)} {(zlib1g-dbg)})
            (C {(dpkg)} {(--listfiles)} {(zlib1g-dbg)})
          ]
        )
    )
    (command.ShFunction
      name: _record
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'flag=') (SQ (Token id:Id.Lit_Chars val:-g span_id:300))})
            (C {(local)} {(Id.Lit_VarLike 'bin=') (_bin/oil.ovm-opt)})
            (C {(local)} {(Id.Lit_VarLike 'freq=') (1000)})
            (C {(local)} {(Id.Lit_VarLike 'file=') (benchmarks/testdata/configure-coreutils)})
            (command.TimeBlock
              pipeline: 
                (C {(perf)} {(record)} {($ Id.VSub_DollarName '$flag')} {(-F)} 
                  {($ Id.VSub_DollarName '$freq')} {(-o)} {(perf.data)} {(--)} {($ Id.VSub_DollarName '$bin')} {(osh)} {(--ast-format)} {(none)} {(-n)} 
                  {($ Id.VSub_DollarName '$file')}
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: record
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(sudo)} {($ Id.VSub_Number '$0')} {(_record)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:388)
            )
          ]
        )
    )
    (command.ShFunction
      name: report
      body: 
        (command.BraceGroup
          children: [(C {(perf)} {(report)} {(-n)} {(--stdio)} {(DQ ($ Id.VSub_At '$@'))})]
        )
    )
    (command.ShFunction
      name: _make-readable
      body: 
        (command.BraceGroup
          children: [
            (C {(chmod)} {(644)} {(perf.data)})
            (C {(chown)} {(andy)} {(perf.data)})
            (C {(file)} {(perf.data)})
            (C {(ls)} {(-l)} {(perf.data)})
          ]
        )
    )
    (command.ShFunction
      name: make-readable
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(sudo)} {($ Id.VSub_Number '$0')} {(_make-readable)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:481)
            )
          ]
        )
    )
    (command.ShFunction
      name: _stat
      body: 
        (command.BraceGroup
          children: [
            (command.Pipeline
              children: [
                (C {(perf)} {(stat)} {(--)} {(_bin/osh)} {(-n)} {(benchmarks/testdata/abuild)})
                (C {(wc)} {(-l)})
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShFunction
      name: stat
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(sudo)} {($ Id.VSub_Number '$0')} {(_stat)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:534)
            )
          ]
        )
    )
    (command.ShFunction
      name: flamegraph
      body: 
        (command.BraceGroup
          children: [
            (C 
              {(word_part.TildeSub token:(Token id:Id.Lit_TildeLike val:'~' span_id:549)) 
                (/git/other/FlameGraph/flamegraph.pl)
              } {(DQ ($ Id.VSub_At '$@'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: stackcollapse-perf
      body: 
        (command.BraceGroup
          children: [
            (C 
              {(word_part.TildeSub token:(Token id:Id.Lit_TildeLike val:'~' span_id:566)) 
                (/git/other/FlameGraph/stackcollapse-perf.pl)
              } {(DQ ($ Id.VSub_At '$@'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: make-graph
      body: 
        (command.BraceGroup
          children: [
            (command.Pipeline
              children: [
                (C {(perf)} {(script)})
                (command.Simple
                  words: [{(stackcollapse-perf)}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:594)
                      fd: -1
                      arg_word: {(out.perf-folded)}
                    )
                  ]
                )
              ]
              negated: F
            )
            (command.Simple
              words: [{(flamegraph)} {(out.perf-folded)}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:603)
                  fd: -1
                  arg_word: {(perf-kernel.svg)}
                )
              ]
            )
          ]
        )
    )
    (C {(DQ ($ Id.VSub_At '$@'))})
  ]
)