(command.CommandList
  children: [
    (C {(echo)} {(SQ <'--- envdir requires arguments'>)})
    (command.CommandList
      children: [
        (command.Sentence child:(C {(envdir)} {(whatever)}) terminator:<Op_Semi ';'>)
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ <'--- envdir complains if it cannot read directory'>)})
    (C {(ln)} {(-s)} {(env1)} {(env1)})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(envdir)} {(env1)} {(echo)} {(yes)})
          terminator: <Op_Semi ';'>
        )
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ <'--- envdir complains if it cannot read file'>)})
    (C {(rm)} {(env1)})
    (C {(mkdir)} {(env1)})
    (C {(ln)} {(-s)} {(Message)} {(env1/Message)})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(envdir)} {(env1)} {(echo)} {(yes)})
          terminator: <Op_Semi ';'>
        )
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ <'--- envdir adds variables'>)})
    (C {(rm)} {(env1/Message)})
    (command.Simple
      words: [{(echo)} {(This)} {(is)} {(a)} {(test.)} {(This)} {(is)} {(only)} {(a)} {(test.)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(env1/Message)})]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(envdir)} {(env1)} {(sh)} {(-c)} {(SQ <'echo $Message'>)})
          terminator: <Op_Semi ';'>
        )
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ <'--- envdir removes variables'>)})
    (C {(mkdir)} {(env2)})
    (C {(touch)} {(env2/Message)})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(envdir)} {(env1)} {(envdir)} {(env2)} {(sh)} {(-c)} {(SQ <'echo $Message'>)})
          terminator: <Op_Semi ';'>
        )
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ <'--- envdir adds prefix'>)})
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (C {(envdir)} {(-p)} {(prefix_)} {(env1)} {(sh)} {(-c)} 
              {(SQ <'echo $Message; echo $prefix_Message'>)}
            )
          terminator: <Op_Semi ';'>
        )
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
  ]
)