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
|
(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Vincent Laviron, OCamlPro *)
(* *)
(* Copyright 2023 OCamlPro, SAS *)
(* *)
(* 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. *)
(* *)
(**************************************************************************)
(** Types related to the compilation of value let-recs (non-functional
recursive definitions) *)
(** The kind of recursive bindings, as computed by
[Value_rec_check.classify_expression] *)
type recursive_binding_kind =
| Static
(** Bindings for which some kind of pre-allocation scheme is possible.
The expression is allowed to be recursive, as long as its definition does
not inspect recursively defined values. *)
| Dynamic
(** Bindings for which pre-allocation is not possible.
The expression is not allowed to refer to any recursive variable. *)
|