let index     ~reference_build     ~(run_with : Machine.t) =   let open KEDSL in   let reference_fasta =     Machine.get_reference_genome run_with reference_build     |> Reference_genome.fasta in   (* `bwa index` creates a bunch of files, c.f.      [this question](https://www.biostars.org/p/73585/) we detect the      `.bwt` one. *)   let bwa_tool = Machine.get_tool run_with Machine.Tool.Default.bwa in   let name =     sprintf "bwa-index-%s" (Filename.basename reference_fasta#product#path) in   let result = sprintf "%s.bwt" reference_fasta#product#path in   workflow_node ~name     (single_file ~host:(Machine.(as_host run_with)) result)     ~edges:[       on_failure_activate (Remove.file ~run_with result);       depends_on reference_fasta;       depends_on Machine.Tool.(ensure bwa_tool);     ]     ~tags:[Target_tags.aligner]     ~make:(Machine.run_big_program run_with ~name              ~self_ids:["bwa""index"]              Program.(                Machine.Tool.(init bwa_tool)                && shf "bwa index %s"                  (Filename.quote reference_fasta#product#path)))