let wget_gunzip       ~host ~(run_program : Machine.Make_fun.t)       ~destination url =     let open KEDSL in     let is_gz = Filename.check_suffix url ".gz" in     if is_gz then (       let name = "gunzip-" ^ Filename.basename (destination ^ ".gz"in       let wgot = wget ~host ~run_program url (destination ^ ".gz"in       workflow_node         (single_file destination ~host)         ~edges:[           depends_on (wgot);           on_failure_activate (Remove.path_on_host ~host destination);         ]         ~name         ~make:(           run_program ~name             ~requirements:(Machine.Make_fun.stream_processor [])             Program.(shf "gunzip -c %s > %s"                        (Filename.quote wgot#product#path)                        (Filename.quote destination)))     ) else (       wget ~host ~run_program url destination     )