(command.CommandList
  children: [
    (C {<echo>} {(SQ <'--- fghack insists on an argument'>)})
    (command.CommandList
      children: [
        (command.Sentence child:(C {<fghack>}) terminator:<Id.Op_Semi _>)
        (C {<echo>} {($ Id.VSub_QMark '?')})
      ]
    )
    (C {<echo>} {(SQ <'--- fghack complains if it cannot run program'>)})
    (command.CommandList
      children: [
        (command.Sentence child:(C {<fghack>} {<'./nonexistent'>}) terminator:<Id.Op_Semi _>)
        (C {<echo>} {($ Id.VSub_QMark '?')})
      ]
    )
    (C {<echo>} {(SQ <'--- fghack runs a program'>)})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {<fghack>} {<sh>} {<-c>} {(SQ <'echo hi &'>)})
          terminator: <Id.Op_Semi _>
        )
        (C {<echo>} {($ Id.VSub_QMark '?')})
      ]
    )
  ]
)