sig   type version = int   type relop = [ `Eq | `Geq | `Gt | `Leq | `Lt | `Neq ]   type constr = (Cudf_types.relop * Cudf_types.version) option   type pkgname = string   type vpkg = Cudf_types.pkgname * Cudf_types.constr   type vpkglist = Cudf_types.vpkg list   type enum_keep =       [ `Keep_feature | `Keep_none | `Keep_package | `Keep_version ]   type vpkgformula = Cudf_types.vpkg list list   type veqpkg = Cudf_types.pkgname * ([ `Eq ] * Cudf_types.version) option   type veqpkglist = Cudf_types.veqpkg list   type typ =       [ `Bool       | `Enum of string list       | `Ident       | `Int       | `Nat       | `Pkgname       | `Posint       | `String       | `Typedecl       | `Veqpkg       | `Veqpkglist       | `Vpkg       | `Vpkgformula       | `Vpkglist ]   val keep_type : Cudf_types.typ   val keep_enums : string list   type typedecl1 =       [ `Bool of bool option       | `Enum of string list * string option       | `Ident of string option       | `Int of int option       | `Nat of int option       | `Pkgname of string option       | `Posint of int option       | `String of string option       | `Typedecl of Cudf_types.typedecl option       | `Veqpkg of Cudf_types.veqpkg option       | `Veqpkglist of Cudf_types.veqpkglist option       | `Vpkg of Cudf_types.vpkg option       | `Vpkgformula of Cudf_types.vpkgformula option       | `Vpkglist of Cudf_types.vpkglist option ]   and typedecl = (string * Cudf_types.typedecl1) list   type typed_value =       [ `Bool of bool       | `Enum of string list * string       | `Ident of string       | `Int of int       | `Nat of int       | `Pkgname of string       | `Posint of int       | `String of string       | `Typedecl of Cudf_types.typedecl       | `Veqpkg of Cudf_types.veqpkg       | `Veqpkglist of Cudf_types.veqpkglist       | `Vpkg of Cudf_types.vpkg       | `Vpkgformula of Cudf_types.vpkgformula       | `Vpkglist of Cudf_types.vpkglist ]   val type_of_typedecl : Cudf_types.typedecl1 -> Cudf_types.typ   val typedecl_of_value : Cudf_types.typed_value -> Cudf_types.typedecl1   val value_of_typedecl :     Cudf_types.typedecl1 -> Cudf_types.typed_value option   val typedecl_of_type : Cudf_types.typ -> Cudf_types.typedecl1   val type_of_value : Cudf_types.typed_value -> Cudf_types.typ   val cast :     Cudf_types.typ -> Cudf_types.typed_value -> Cudf_types.typed_value   type 'ty stanza = (string * 'ty) list   type loc = Lexing.position * Lexing.position   val dummy_loc : Cudf_types.loc   val extend_loc : Cudf_types.loc -> Cudf_types.loc -> Cudf_types.loc   val loc_of_lexbuf : Lexing.lexbuf -> Cudf_types.loc   exception Parse_error_822 of string * Cudf_types.loc   exception Syntax_error of string * Cudf_types.loc   exception Type_error of Cudf_types.typ * Cudf_types.typed_value *               Cudf_types.loc   val is_eq_formula : Cudf_types.vpkgformula -> bool end