(command.CommandList
  children: [
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(DQ <'Testing rtop...'>)}]
      redirects: []
      do_fork: T
    )
    (command.Pipeline
      children: [
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {(DQ <'let f a => a;'>)}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <utop>
          more_env: []
          words: [{<utop>} {<-init>} {<'src/rtop_init.ml'>} {<-I>} {($ Id.VSub_DollarName HOME)}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <grep>
          more_env: []
          words: [{<grep>} {(DQ <'let f : \'a => \'a = <fun>'>)}]
          redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {($ Id.VSub_QMark '?')}
                        {<-ne>}
                        {<0>}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'rtop is failing! Failed to evaluate '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) <'let f a => a;'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`')
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [68 81]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Pipeline
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'let f a => 1 + '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <hi> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <';'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <utop>
              more_env: []
              words: [{<utop>} {<-init>} {<'src/rtop_init.ml'>} {<-I>} {($ Id.VSub_DollarName HOME)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <grep>
              more_env: []
              words: [{<grep>} {(DQ <'Error: This expression has type'>)}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
              do_fork: T
            )
          ]
          ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
        )
        (command.If
          if_kw: <Id.KW_If if>
          arms: [
            (IfArm
              keyword: <Id.KW_If if>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_QMark '?')}
                            {<-ne>}
                            {<0>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              then_kw: <Id.KW_Then then>
              action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (DQ <'rtop is failing! Failed to (correctly) error on '> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\`'>
                          ch: '`'
                        ) <'let f a => 1 + '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <hi> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                          ch: '"'
                        ) <';'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`')
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              spids: [140 153]
            )
          ]
          else_action: []
          fi_kw: <Id.KW_Fi fi>
          redirects: []
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
  ]
)