let register_factory f = if List.exists (fun o -> o#name = f#name) !factories then Cam_dbg.print (Printf.sprintf "A view factory called \"%s\" is already registered." f#name) else factories := f :: !factories