let get_cache_dir ~(run_with: Machine.t) =   let open KEDSL in   let cache_dir = Machine.(get_pyensembl_cache_dir run_with) in   match cache_dir with     | Some path -> path     | None -> failwith "Tool depends on PyEnsembl, but the cache directory has not been set!"