package js_of_ocaml-compiler

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Lambda-lift all functions of the program that are in to_lift. All functions are lifted to toplevel. Functions that may be mutually recursive are lifted together. Also yields a map from the original function names to the names of their lambda-lifted counterparts. E.g. consider:

let y = -3 in (* ... *) let rec fib n = match n with | 0 | 1 -> 1 | _ -> fib (n-1) + fib (n-2) + y in fib 42

After lambda-lifting of fib, it will look like:

let y = -3 in (* ... *) let fib' y = let rec fib_l n = match n with | 0 | 1 -> 1 | _ -> fib_l (n-1) + fib_l (n-2) + y in fib_l in let fib = fib' y in fib 42

fib_l is the lifted version of fib, fib' is the lifting closure.

OCaml

Innovation. Community. Security.