code: public static LocalCall<Map<String, Xor<Info, List<Info>>>> infoInstalledAllVersions(
              List<String> attributes, boolean reportErrors, String... packages) {
          LinkedHashMap<String, Object> kwargs = new LinkedHashMap<>();
          kwargs.put("attr", attributes.stream().collect(Collectors.joining(",")));
          kwargs.put("all_versions", true);
          if (reportErrors) {
              kwargs.put("errors", "report");
          }
          return new LocalCall<>("pkg.info_installed", Optional.of(Arrays.asList(packages)),
                  Optional.of(kwargs), new TypeToken<Map<String, Xor<Info, List<Info>>>>(){});
      }
docs: Call 'pkg.info_installed' API.
  
  @param attributes list of attributes that should be included in the result
  @param reportErrors if true will return an error message instead of corrupted text
  @param packages optional give package names, otherwise return info about all packages
  @return the call