Projection
type move_within_set_of_closures = {
closure : Variable.t;
start_from : Closure_id.t;
move_to : Closure_id.t;
}
val print_project_closure : Format.formatter -> project_closure -> unit
val print_move_within_set_of_closures :
Format.formatter ->
move_within_set_of_closures ->
unit
val print_project_var : Format.formatter -> project_var -> unit
val compare_project_var : project_var -> project_var -> int
val compare_project_closure : project_closure -> project_closure -> int
val compare_move_within_set_of_closures :
move_within_set_of_closures ->
move_within_set_of_closures ->
int
type t =
| Project_var of project_var
| Project_closure of project_closure
| Move_within_set_of_closures of move_within_set_of_closures
| Field of int * Variable.t
module T : sig ... end
val hash : T.t -> int
val output : out_channel -> T.t -> unit
val print : Format.formatter -> T.t -> unit
module Set : sig ... end
module Map : sig ... end
module Tbl : sig ... end
val projecting_from : t -> Variable.t
val map_projecting_from : t -> f:(Variable.t -> Variable.t) -> t