type location = {file : string;mutable line_begin : int;mutable line_end : int;mutable char_begin : int;mutable char_end : int;
}type context = | InsideTable| InsideArray| InsideInlineTable
type config = {debug : bool;silent_errors : EzCompat.IntSet.t;newline : string;
}type table = node EzCompat.StringMap.tand value = | Table of table| Array of node array| String of string| Bool of bool| Int of string| Float of string| Date of string
type error = | Parse_error| Syntax_error of string| Invalid_lookup| Invalid_lookup_in_inline_array| Key_already_exists of key_path| Invalid_key_set of key| Invalid_table of key_path| Append_item_to_non_array of key_path| Append_item_to_non_table_array of key_path| Invalid_escaped_unicode of string| Expected_error_before_end_of_file of int| Expected_error_did_not_happen of int| Expected_error_but_another_error of int * location * int * error| Forbidden_escaped_character| Unterminated_string| Control_characters_must_be_escaped of char| Duplicate_table_item of key_path| Type_mismatch of node * string| Bad_convertion of node * string| Invalid_lookup_in_empty_array| Key_already_exists_in_inline_table of key_path| Invalid_use_of_extension of string