module Cudf_types:CUDF type librarysig..end
    Implement core CUDF types (see CUDF spec. ยง3.2.2), together with
    parsing and pretty printing for them
typeversion =int
typerelop =[ `Eq | `Geq | `Gt | `Leq | `Lt | `Neq ]
typeconstr =(relop * version) option
typepkgname =string
typevpkg =pkgname * constr
typevpkglist =vpkg list
typevpkgformula =vpkg list list
 [ foo ] ; [ bar ; baz ] typeveqpkg =pkgname * ([ `Eq ] * version) option
typeveqpkglist =veqpkg list
typeenum_keep =[ `Keep_feature | `Keep_package | `Keep_version ]
exception Parse_error of string * string
val parse_bool : string -> boolval parse_pkgname : string -> pkgnameval parse_version : string -> versionval parse_vpkg : string -> vpkgval parse_vpkglist : string -> vpkglistval parse_vpkgformula : string -> vpkgformulaval parse_veqpkg : string -> veqpkgval parse_veqpkglist : string -> veqpkglistval parse_keep : string -> enum_keepval parse_relop : string -> relopval pp_bool : Format.formatter -> bool -> unitval pp_keep : Format.formatter -> enum_keep -> unitval pp_pkgname : Format.formatter -> pkgname -> unitval pp_version : Format.formatter -> version -> unitval pp_vpkg : Format.formatter -> vpkg -> unitval pp_vpkglist : Format.formatter -> vpkglist -> unitval pp_vpkgformula : Format.formatter -> vpkgformula -> unitval pp_veqpkg : Format.formatter -> veqpkg -> unitval pp_veqpkglist : Format.formatter -> veqpkglist -> unit
    Shorthand functions.
val string_of_bool : bool -> stringval string_of_keep : enum_keep -> stringval string_of_pkgname : pkgname -> stringval string_of_version : version -> stringval string_of_vpkg : vpkg -> stringval string_of_vpkglist : vpkglist -> stringval string_of_vpkgformula : vpkgformula -> stringval string_of_veqpkg : veqpkg -> stringval string_of_veqpkglist : veqpkglist -> string