sig
  val vsplice : 'a list -> int -> 'a list -> 'a list
  val reparent1 :
    Flx_mtypes2.sym_state_t ->
    Flx_call.usage_table_t * Flx_child.child_map_t *
    Flx_types.fully_bound_symbol_table_t ->
    (string, string) Hashtbl.t ->
    (int, Flx_types.btypecode_t) Hashtbl.t ->
    (Flx_ast.bid_t, Flx_ast.bid_t) Hashtbl.t ->
    (string * int) list ->
    int -> Flx_ast.bid_t -> int option -> int -> bool -> unit
  val reparent_children :
    Flx_mtypes2.sym_state_t ->
    Flx_call.usage_table_t * Flx_child.child_map_t *
    Flx_types.fully_bound_symbol_table_t ->
    (string * int) list ->
    int ->
    Flx_ast.bid_t ->
    Flx_ast.bid_t option ->
    (string, string) Hashtbl.t ->
    (int, Flx_types.btypecode_t) Hashtbl.t ->
    bool -> (int, Flx_ast.bid_t) Hashtbl.t
  val specialise_symbol :
    Flx_mtypes2.sym_state_t ->
    Flx_call.usage_table_t * Flx_child.child_map_t *
    Flx_types.fully_bound_symbol_table_t ->
    (string * int) list ->
    int ->
    Flx_ast.bid_t ->
    Flx_types.btypecode_t list ->
    Flx_ast.bid_t option ->
    (string, string) Hashtbl.t ->
    (int, Flx_types.btypecode_t) Hashtbl.t ->
    bool -> int * Flx_types.btypecode_t list
  val remap_expr :
    Flx_mtypes2.sym_state_t ->
    Flx_types.fully_bound_symbol_table_t ->
    (int, Flx_types.btypecode_t) Hashtbl.t ->
    (Flx_ast.bid_t, Flx_ast.bid_t) Hashtbl.t ->
    Flx_types.btypecode_t list ->
    int -> Flx_types.tbexpr_t -> Flx_types.tbexpr_t
end