let journalized_get =
let get fnames cast_intro =
Result.memo
(fun _ ->
!Value.compute ();
let fresh_project =
File.create_project_from_visitor
"propagated"
(fun prj -> new propagate prj fnames cast_intro)
in
let ctx = Parameters.get_selection_context () in
Project.copy ~only:ctx fresh_project;
fresh_project)
(fnames, cast_intro)
in
Journal.register
"!Db.Constant_Propagation.get"
(Type.func Kernel_type.string_set
(Type.func ~label:("cast_intro",None) Type.bool Project.ty))
get