File: value_rec_types.mli

package info (click to toggle)
ocaml 5.4.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 44,372 kB
  • sloc: ml: 370,196; ansic: 52,820; sh: 27,396; asm: 5,462; makefile: 3,679; python: 974; awk: 278; javascript: 273; perl: 59; fortran: 21; cs: 9
file content (27 lines) | stat: -rw-r--r-- 1,584 bytes parent folder | download | duplicates (8)
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. *)