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",NoneType.bool Project.ty))
    get