sig
  type changeset = Common.CudfAdd.Cudf_set.t * Common.CudfAdd.Cudf_set.t
  type difference =
      (Cudf_types.pkgname, Common.CudfDiff.changeset) ExtLib.Hashtbl.t
  val make_solution :
    universe:Cudf.universe ->
    solution:Cudf.universe -> Common.CudfDiff.changeset
  val make_difference :
    universe:Cudf.universe ->
    solution:Cudf.universe -> Common.CudfDiff.difference
  type summary = {
    install : Cudf.package list;
    remove : Cudf.package list;
    upgrade : (Cudf.package * Cudf.package) list;
    downgrade : (Cudf.package * Cudf.package) list;
    notchange : Cudf.package list;
  }
  val make_summary :
    Cudf.universe -> Common.CudfDiff.difference -> Common.CudfDiff.summary
end