(command.CommandList
  children: [
    (C {(touch)} {($ VSub_DollarName '$HOME') (/.utoprc)})
    (C {(touch)} {($ VSub_DollarName '$HOME') (/.utop-history)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:DIR spids:[49])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [
                      (command.AndOr
                        ops: [Op_DAmp]
                        children: [
                          (C {(cd)} 
                            {
                              (DQ 
                                (word_part.CommandSubPart
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (C {(dirname)} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Name BASH_SOURCE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{(Lit_Digits 0)})
                                                  )
                                                spids: [60 65]
                                              )
                                            )
                                          }
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [55 68]
                                )
                              )
                            }
                          )
                          (C {(pwd)})
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [50 75]
              )
            }
          spids: [49]
        )
      ]
      spids: [49]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {($ VSub_DollarName '$HOME') (/.reasoninit)} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('/* Added by rtop */\n') ('let () =\n') 
                    ('  try (Topdirs.dir_directory (Sys.getenv ') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (OCAML_TOPLEVEL_PATH) 
                    (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (')) {\n') ('  | Not_found => ()\n') ('  };')
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_DollarName '$HOME') (/.reasoninit)}
                )
              ]
            )
          ]
          spids: [16777215 93]
        )
      ]
      spids: [16777215 123]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.BoolBinary
                      op_id: BoolBinary_EqualTilde
                      left: {($ VSub_At '$@')}
                      right: {(DQ (stdin))}
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Pipeline
              children: [
                (C {(refmt)} {(-parse)} {(re)} {(-print)} {(ml)} {(-use-stdin)} {(true)} {(-is-interface-pp)} 
                  {(false)}
                )
                (C {(utop)} {($ VSub_At '$@')})
              ]
              negated: F
            )
          ]
          spids: [16777215 141]
        )
      ]
      else_action: [
        (C {(utop)} {(-init)} {($ VSub_DollarName '$DIR') (/rtop_init.ml)} {($ VSub_At '$@')} {(-I)} 
          {($ VSub_DollarName '$HOME')} {(-safe-string)}
        )
      ]
      spids: [168 186]
    )
  ]
)