My working unpac repository
1(**************************************************************************)
2(* *)
3(* OCaml *)
4(* *)
5(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
6(* *)
7(* Copyright 1996 Institut National de Recherche en Informatique et *)
8(* en Automatique. *)
9(* *)
10(* All rights reserved. This file is distributed under the terms of *)
11(* the GNU Lesser General Public License version 2.1, with the *)
12(* special exception on linking described in the file LICENSE. *)
13(* *)
14(**************************************************************************)
15
16(** Lambda simplification.
17
18 {b Warning:} this module is unstable and part of
19 {{!Compiler_libs}compiler-libs}.
20
21*)
22
23(* Elimination of useless Llet(Alias) bindings.
24 Transformation of let-bound references into variables.
25 Simplification over staticraise/staticcatch constructs.
26 Generation of tail-call annotations if -annot is set. *)
27
28open Lambda
29
30val simplify_lambda: lambda -> lambda
31
32val split_default_wrapper
33 : id:Ident.t
34 -> kind:function_kind
35 -> params:(Ident.t * Lambda.value_kind) list
36 -> return:Lambda.value_kind
37 -> body:lambda
38 -> attr:function_attribute
39 -> loc:Lambda.scoped_location
40 -> rec_binding list