`type request = {`

1. `install : Dose_pef.Packages_types.vpkg list;`
2. `remove : Dose_pef.Packages_types.vpkg list;`
3. `upgrade : Dose_pef.Packages_types.vpkg list;`
4. `dist_upgrade : bool;`
5. `switch : string;`
6. `switches : string list;`
7. `profiles : string list;`
8. `preferences : string;`

`}`
`type options = Dose_pef.Packages_types.architecture * Dose_pef.Packages_types.architecture list * Dose_pef.Packages_types.buildprofile list`
`val default_request : request`
`val parse_request_stanza : Dose_extra.Format822.stanza -> request`
`val vpkglist_filter : options -> Dose_pef.Packages_types.builddepslist -> Dose_pef.Packages_types.vpkglist`
`val vpkgformula_filter : options -> Dose_pef.Packages_types.builddepsformula -> Dose_pef.Packages_types.vpkgformula`
`class package : ?name:(string * Dose_pef.Packages_types.name option) -> ?version:( string * Dose_pef.Packages_types.version option) -> ?depends:(string * Dose_pef.Packages_types.vpkgformula option) -> ?conflicts:( string * Dose_pef.Packages_types.vpkglist option) -> ?provides:(string * Dose_pef.Packages_types.vpkglist option) -> ?depopts:( string * Dose_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 * Dose_pef.Packages.parse_extras_f option) list * (string * string) list option) -> Dose_extra.Format822.stanza -> object ... end`
`val parse_package_stanza : options -> ?extras:(string * Dose_pef.Packages.parse_extras_f option) list -> Dose_extra.Format822.stanza -> package option`
`val packages_parser : ?request:bool -> (request * package list) -> Dose_extra.Format822.f822_parser -> request * package list`
`val input_raw_in : IO.input -> request * package list`
`val input_raw : string -> request * package list`