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