16 lines
724 B
OCaml
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
|