(CommandList
  children: [
    (FuncDef
      name: list_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]
            )
            (C {(check_if_plugin_exists)} {(DQ ($ VSub_Name "$plugin_name"))})
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:versions) op:Equal spids:[23])]
              spids: [21]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:versions)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(list_installed_versions)} {(DQ ($ VSub_Name "$plugin_name"))})
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [27 33]
                      )
                    }
                  spids: [26]
                )
              ]
              spids: [26]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} {(DQ (${ VSub_Name versions))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (ForEach
                      iter_name: version
                      iter_words: [{($ VSub_Name "$versions")}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [(C {(echo)} {(DQ ($ VSub_Name "$version"))})]
                          spids: [64 74]
                        )
                      spids: [60 62]
                    )
                  ]
                  spids: [-1 52]
                )
              ]
              else_action: [(C {(display_error)} {(SQ <"No versions installed">)}) (C {(exit)} {(1)})]
              spids: [77 92]
            )
          ]
          spids: [4]
        )
      spids: [0 3]
    )
  ]
)