(CommandList
  children: [
    (FuncDef
      name: list_all_command
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:plugin_name)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [9]
                )
              ]
              spids: [7]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:plugin_path) op:Equal spids:[15])]
              spids: [13]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:plugin_path)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(get_plugin_path)} {(DQ ($ VSub_Name "$plugin_name"))})]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [19 25]
                      )
                    }
                  spids: [18]
                )
              ]
              spids: [18]
            )
            (C {(check_if_plugin_exists)} {(DQ ($ VSub_Name "$plugin_name"))})
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:versions) op:Equal spids:[38])]
              spids: [36]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:versions)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(bash)} {(DQ (${ VSub_Name plugin_path) (/bin/list-all))})]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [42 51]
                      )
                    }
                  spids: [41]
                )
              ]
              spids: [41]
            )
            (SimpleCommand
              words: [{(read)} {(-r)} {(-a)} {(versions_list)}]
              redirects: [
                (Redir
                  op_id: Redir_TLess
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name "$versions"))}
                  spids: [68]
                )
              ]
              more_env: [(env_pair name:IFS val:{(SQ <" ">)} spids:[55])]
            )
            (ForEach
              iter_name: version
              iter_words: [
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name versions_list>
                      bracket_op: (WholeArray op_id:Lit_At)
                      spids: [83 88]
                    )
                  )
                }
              ]
              do_arg_iter: False
              body: (DoGroup children:[(C {(echo)} {(DQ (${ VSub_Name version))})] spids:[92104])
              spids: [81 -1]
            )
          ]
          spids: [4]
        )
      spids: [0 3]
    )
  ]
)