1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Pierre Chambart, OCamlPro *)
(* Mark Shinwell and Leo White, Jane Street Europe *)
(* *)
(* Copyright 2013--2016 OCamlPro SAS *)
(* Copyright 2014--2016 Jane Street Group LLC *)
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Lesser General Public License version 2.1, with the *)
(* special exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
[@@@ocaml.warning "+a-4-9-30-40-41-42"]
(** Introduce a stub function to avoid depending on unused arguments.
For instance, it turns
[let rec fact n unused =
if n = 0 then 1
else n * fact (n-1) unused]
into
[let rec fact' n =
if n = 0 then 1
else n * fact' (n-1)
and fact n unused = fact' n]
*)
val separate_unused_arguments_in_closures
: Flambda.program
-> backend:(module Backend_intf.S)
-> Flambda.program
val separate_unused_arguments_in_set_of_closures
: Flambda.set_of_closures
-> backend:(module Backend_intf.S)
-> Flambda.set_of_closures option
|