(command.CommandList
  children: [
    (command.ShFunction
      name: sayhello
      body: 
        (BraceGroup
          children: [
            (C {<sleep>} {<10>})
            (C {<echo>} {<df>})
            (C {<sleep>} {<1>})
            (C {<echo>} {<gcc>} {<-s>} {<'/usr/src/thread-hello2.c'>} {<-lpthread>} {<-o>} {<'/tmp/hello'>})
            (C {<sleep>} {<5>})
            (C {<echo>} {<'/tmp/hello'>})
            (C {<sleep>} {<1>})
            (C {<echo>} {<Id.ControlFlow_Exit exit>})
          ]
        )
    )
    (command.Pipeline
      children: [
        (C {<sayhello>})
        (C {<'more/timeout.sh'>} 
          {
            (braced_var_sub
              token: <Id.VSub_Name TIMEOUT>
              suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<60>})
            )
          } {<'more/run-emulator-from-build.sh'>} {(DQ ($ Id.VSub_Number '$1'))}
        )
      ]
      negated: F
    )
  ]
)