sig
  val build_env : Flx_mtypes2.sym_state_t -> int option -> Flx_types.env_t
  val lookup_name_in_env :
    Flx_mtypes2.sym_state_t ->
    Flx_types.env_t ->
    Flx_ast.range_srcref -> Flx_ast.id_t -> Flx_types.entry_set_t
  val lookup_qn_in_env :
    Flx_mtypes2.sym_state_t ->
    Flx_types.env_t ->
    Flx_ast.qualified_name_t ->
    Flx_types.entry_kind_t * Flx_ast.typecode_t list
  val lookup_qn_in_env2 :
    Flx_mtypes2.sym_state_t ->
    Flx_types.env_t ->
    Flx_ast.qualified_name_t ->
    Flx_types.entry_set_t * Flx_ast.typecode_t list
  val lookup_sn_in_env :
    Flx_mtypes2.sym_state_t ->
    Flx_types.env_t ->
    Flx_ast.suffixed_name_t -> int * Flx_types.btypecode_t list
  val lookup_code_in_env :
    Flx_mtypes2.sym_state_t ->
    Flx_types.env_t ->
    Flx_ast.range_srcref ->
    Flx_ast.qualified_name_t ->
    Flx_types.entry_kind_t list * Flx_ast.typecode_t list
  val bind_type :
    Flx_mtypes2.sym_state_t ->
    Flx_types.env_t ->
    Flx_ast.range_srcref -> Flx_ast.typecode_t -> Flx_types.btypecode_t
  val eval_module_expr :
    Flx_mtypes2.sym_state_t ->
    Flx_types.env_t -> Flx_ast.expr_t -> Flx_types.module_rep_t
  val resolve_overload :
    Flx_mtypes2.sym_state_t ->
    Flx_ast.range_srcref ->
    Flx_types.entry_kind_t list ->
    Flx_ast.id_t ->
    Flx_types.btypecode_t ->
    Flx_types.btypecode_t list ->
    (Flx_types.entry_kind_t * Flx_types.btypecode_t *
     (int * Flx_types.btypecode_t) list * Flx_types.btypecode_t list)
    option
  val bind_expression :
    Flx_mtypes2.sym_state_t ->
    Flx_types.env_t -> Flx_ast.expr_t -> Flx_types.tbexpr_t
  val typeofindex : Flx_mtypes2.sym_state_t -> int -> Flx_types.btypecode_t
  val typeofindex_with_ts :
    Flx_mtypes2.sym_state_t ->
    Flx_ast.range_srcref ->
    int -> Flx_types.btypecode_t list -> Flx_types.btypecode_t
  val typeof_literal :
    Flx_mtypes2.sym_state_t ->
    Flx_types.env_t ->
    Flx_ast.range_srcref -> Flx_ast.literal_t -> Flx_types.btypecode_t
  val lookup_qn_with_sig :
    Flx_mtypes2.sym_state_t ->
    Flx_ast.range_srcref ->
    Flx_ast.range_srcref ->
    Flx_types.env_t ->
    Flx_ast.qualified_name_t -> Flx_types.btypecode_t -> Flx_types.tbexpr_t
  val bind_regdef :
    Flx_mtypes2.sym_state_t ->
    Flx_types.env_t -> int list -> Flx_ast.regexp_t -> Flx_ast.regexp_t
end