Module Flx_mtypes2


module Flx_mtypes2: sig .. end

module VarMap: Map.S  with type key = string
type varmap_t = string VarMap.t 
module TypecodeSet: Set.S  with type elt = Flx_ast.typecode_t
type typecodeset_t = TypecodeSet.t 
val typecodeset_of_list : TypecodeSet.elt list -> TypecodeSet.t
val typecodeset_map : (TypecodeSet.elt -> TypecodeSet.elt) ->
TypecodeSet.t -> TypecodeSet.t
module PosSet: Set.S  with type elt = int
module PosSetSet: Set.S  with type elt = PosSet.t
module CharSet: Set.S  with type elt = int
type instance_registry_t = (int * Flx_types.btypecode_t list, int) Hashtbl.t 

type felix_compiler_options_t = {
   print_flag : bool;
   debug : bool;
   optimise : bool;
   trace : bool;
   include_dirs : string list;
   files : string list;
   raw_options : (string * string) list;
   reverse_return_parity : bool;
   max_inline_length : int;
   compile_only : bool;
   force_recompile : bool;
}
type sym_state_t = {
   dfns : Flx_types.symbol_table_t;
   counter : int Pervasives.ref;
   varmap : Flx_types.typevarmap_t;
   ticache : (int, Flx_types.btypecode_t) Hashtbl.t;
   glr_cache : (int, Flx_types.btypecode_t) Hashtbl.t;
   env_cache : (int, Flx_types.env_t) Hashtbl.t;
   registry : Flx_types.type_registry_t;
   compiler_options : felix_compiler_options_t;
   instances : instance_registry_t;
   include_files : string list Pervasives.ref;
   roots : Flx_mtypes1.IntSet.t Pervasives.ref;
   wrappers : (int, int) Hashtbl.t;
   lexers : (int * Flx_types.tbexpr_t, int) Hashtbl.t;
   parsers : (int * Flx_types.btypecode_t * int list, int) Hashtbl.t;
}