sig
  type cudf_parser
  exception Parse_error of string * Cudf_types.loc
  val from_in_channel :
    ?typedecl:Cudf_conf.stanza_typedecl ->
    Pervasives.in_channel -> Cudf_parser.cudf_parser
  val from_IO_in_channel :
    ?typedecl:Cudf_conf.stanza_typedecl ->
    IO.input -> Cudf_parser.cudf_parser
  val from_file :
    ?typedecl:Cudf_conf.stanza_typedecl -> string -> Cudf_parser.cudf_parser
  val close : Cudf_parser.cudf_parser -> unit
  val parse :
    Cudf_parser.cudf_parser ->
    Cudf.preamble option * Cudf.package list * Cudf.request option
  val load :
    Cudf_parser.cudf_parser ->
    Cudf.preamble option * Cudf.universe * Cudf.request option
  val load_solution :
    Cudf_parser.cudf_parser ->
    Cudf.universe -> Cudf.preamble option * Cudf.universe
  val parse_from_file :
    ?typedecl:Cudf_conf.stanza_typedecl ->
    string -> Cudf.preamble option * Cudf.package list * Cudf.request option
  val load_from_file :
    ?typedecl:Cudf_conf.stanza_typedecl ->
    string -> Cudf.preamble option * Cudf.universe * Cudf.request option
  val load_solution_from_file :
    string -> Cudf.universe -> Cudf.preamble option * Cudf.universe
  val parse_item : Cudf_parser.cudf_parser -> Cudf.cudf_item
  type loc_map = (string * Cudf_types.loc) list
  val parse_stanza :
    Cudf_parser.cudf_parser -> Cudf_parser.loc_map * string Cudf_types.stanza
  val type_check_stanza :
    ?locs:Cudf_parser.loc_map ->
    string Cudf_types.stanza ->
    Cudf_types.typedecl -> Cudf_types.typed_value Cudf_types.stanza
end