Module Js_of_ocaml_compiler.Duplicate

val closure : Code.program -> bound_vars:Js_of_ocaml_compiler.Code.Var.Set.t -> f:Code.Var.t -> params:Code.Var.t list -> cont:(int * Code.Var.t list) -> Code.program * Code.Var.t * Code.Var.t list * (int * Code.Var.t list)

Given a program and a closure f -- defined by its name, parameters, and its continuation --, return a program in which the body of f has been updated with fresh variable names to replace elements of bound_vars. Also returns the new name of f (fresh if f is in bound_vars), and the similarly substituted parameter list and continuation.