sig
  type request = {
    install : Pef.Packages_types.vpkg list;
    remove : Pef.Packages_types.vpkg list;
    upgrade : Pef.Packages_types.vpkg list;
    dist_upgrade : bool;
    switch : string;
    switches : string list;
    profiles : string list;
    preferences : string;
  }
  type options =
      Pef.Packages_types.architecture *
      Pef.Packages_types.architecture list *
      Pef.Packages_types.buildprofile list
  val default_request : Opam.Packages.request
  val parse_request_stanza : Common.Format822.stanza -> Opam.Packages.request
  val vpkglist_filter :
    Opam.Packages.options ->
    Pef.Packages_types.builddepslist -> Pef.Packages_types.vpkglist
  val vpkgformula_filter :
    Opam.Packages.options ->
    Pef.Packages_types.builddepsformula -> Pef.Packages_types.vpkgformula
  class package :
    ?name:string * Pef.Packages_types.name option ->
    ?version:string * Pef.Packages_types.version option ->
    ?depends:string * Pef.Packages_types.vpkgformula option ->
    ?conflicts:string * Pef.Packages_types.vpkglist option ->
    ?provides:string * Pef.Packages_types.vpkglist option ->
    ?depopts:string * Pef.Packages_types.vpkgformula option ->
    ?switch:string * string list option ->
    ?installedlist:string * string list option ->
    ?pinnedlist:string * string list option ->
    ?baselist:string * string list option ->
    ?extras:(string * Pef.Packages.parse_extras_f option) list *
            (string * string) list option ->
    Common.Format822.stanza ->
    object ('a)
      method add_extra : string -> string -> 'a
      method baselist : string list
      method conflicts : Pef.Packages_types.vpkglist
      method depends : Pef.Packages_types.vpkgformula
      method depopts : Pef.Packages_types.vpkgformula
      method extras : (string * string) list
      method get_extra : string -> string
      method installed : Pef.Packages_types.installed
      method installedlist : string list
      method name : Pef.Packages_types.name
      method pinnedlist : string list
      method pp : Pervasives.out_channel -> unit
      method provides : Pef.Packages_types.vpkglist
      method recommends : Pef.Packages_types.vpkgformula
      method set_extras : (string * string) list -> 'a
      method set_installed : Pef.Packages_types.installed -> 'a
      method switch : string list
      method version : Pef.Packages_types.version
    end
  val parse_package_stanza :
    Opam.Packages.options ->
    ?extras:(string * Pef.Packages.parse_extras_f option) list ->
    Common.Format822.stanza -> Opam.Packages.package option
  val packages_parser :
    ?request:bool ->
    Opam.Packages.request * Opam.Packages.package list ->
    Common.Format822.f822_parser ->
    Opam.Packages.request * Opam.Packages.package list
  val input_raw_in :
    IO.input -> Opam.Packages.request * Opam.Packages.package list
  val input_raw :
    string -> Opam.Packages.request * Opam.Packages.package list
end