mpri-funcprog-project/src/Cook.mli

16 lines
724 B
OCaml

(* This module translates [RawLambda] into [Lambda]. *)
(* This involves ensuring that every name is properly bound (otherwise, an
error is reported) and switching from a representation of names as strings
to a representation of names as atoms. *)
(* This also involves checking that the right-hand side of every [let]
construct is a function (otherwise, an error is reported) and switching
from a representation where [let] constructs can carry a [rec] annotation
to a representation where functions can carry such an annotation. *)
(* This also involves dropping places (that is, source code locations), since
they are no longer used after this phase. *)
val cook_term: RawLambda.term -> Lambda.term