anchor.diff:      | [<Inherit; EqualsAssignment>] Command_File of string
       | [<Inherit; EqualsAssignment>] Log_File of string
       | [<CliPrefix(CliPrefix.None)>] Import of ParseResults<ImportArgs>
  -    | [<CliPrefix(CliPrefix.None)>] List_Supported_Games
  +    | [<CliPrefix(CliPrefix.None)>] List_Supported_Games of ParseResults<ListSupportedGamesArgs>
       | [<CliPrefix(CliPrefix.None)>] List_Games of ParseResults<ListGamesArgs>
       | [<CliPrefix(CliPrefix.None)>] List_Lessons of ParseResults<ListLessonsArgs>
       | [<CliPrefix(CliPrefix.None)>] Delete_Game of ParseResults<DeleteGameArgs>
  
positive.code: 
      match results.TryGetSubCommand() with
      | Some(Import ia) -> runImportAction(iPluginManager, otw, lldb, remainderArgs)(ia)
      | Some(List_Supported_Games) -> runListSupportedGamesAction(iPluginManager, otw)
      | Some(List_Games lga) -> runListGamesAction(otw, lldb)(lga)
      | Some(List_Lessons lla) -> runListLessonsAction(otw, lldb)(lla)
      | Some(Delete_Game dga) -> runDeleteGameAction(otw, lldb)(dga)
      | Some(Delete_Lessons dla) -> runDeleteLessonsAction(otw, lldb)(dla)
      | Some(Dump_Text dta) -> runDumpTextAction(otw, lldb)(dta)
      | _ -> failwith "unrecognized subcommand"
  
      0
  
negative.code:     |> Option.iter(fun cards -> cards |> Array.iter dumpCard)
  
  let rec parseCommands(cs: string array) = 
      let parser = ArgumentParser.Create<BaseArgs>(errorHandler = new ProcessExiter())
      let results = parser.Parse(cs)
  
      if (results.IsUsageRequested) || (results.GetAllResults() |> List.isEmpty) then
  