sig
  type usage_table_t =
      (Flx_ast.bid_t, (Flx_ast.bid_t * Flx_ast.range_srcref) list) Hashtbl.t
  type usage_t = Flx_call.usage_table_t * Flx_call.usage_table_t
  val call_data :
    Flx_mtypes2.sym_state_t ->
    Flx_types.fully_bound_symbol_table_t -> Flx_call.usage_t
  val print_call_report :
    Flx_mtypes2.sym_state_t ->
    Flx_types.fully_bound_symbol_table_t -> Pervasives.out_channel -> unit
  val is_recursive_call :
    Flx_call.usage_table_t -> Flx_ast.bid_t -> Flx_ast.bid_t -> bool
  val is_recursive : Flx_call.usage_table_t -> Flx_ast.bid_t -> bool
  val cal_exe_usage :
    Flx_mtypes2.sym_state_t ->
    Flx_call.usage_table_t -> int -> Flx_types.bexe_t -> unit
  val cal_param_usage :
    Flx_mtypes2.sym_state_t ->
    Flx_call.usage_table_t ->
    Flx_ast.range_srcref -> int -> Flx_types.bparameter_t -> unit
  val use_closure : Flx_call.usage_table_t -> int -> Flx_mtypes1.IntSet.t
  val child_use_closure :
    Flx_mtypes1.IntSet.t ->
    Flx_call.usage_table_t -> int -> Flx_mtypes1.IntSet.t
  val expr_uses :
    Flx_mtypes2.sym_state_t ->
    Flx_mtypes1.IntSet.t ->
    Flx_call.usage_table_t ->
    Flx_mtypes1.IntSet.t -> Flx_types.tbexpr_t -> Flx_mtypes1.IntSet.t
end