let make ~url     ?(install_program = fun ~path -> noop)     ?(init_program = fun ~path -> noop)     ~witness ?(archive_is_directory = true)     ?unarchived_directory     tool_definition =   {tool_definition; url; install_program;    init_program; witness; unarchived_directory; archive_is_directory}