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.func2 Kernel_type.string_set
       ~label2:("cast_intro",NoneType.bool Project.ty)
    get