sig   module Tool :     sig       module Definition :         sig           type t = { name : string; version : string option; }           val create :             ?version:string ->             string -> Biokepi_run_environment.Machine.Tool.Definition.t           val to_opam_name :             Biokepi_run_environment.Machine.Tool.Definition.t -> string           val to_string :             Biokepi_run_environment.Machine.Tool.Definition.t -> string           val to_directory_name :             Biokepi_run_environment.Machine.Tool.Definition.t -> string           val get_version :             Biokepi_run_environment.Machine.Tool.Definition.t ->             string option           val get_name :             Biokepi_run_environment.Machine.Tool.Definition.t -> string         end       module Default :         sig           val bwa : Biokepi_run_environment.Machine.Tool.Definition.t           val freebayes : Biokepi_run_environment.Machine.Tool.Definition.t           val sambamba : Biokepi_run_environment.Machine.Tool.Definition.t           val samtools : Biokepi_run_environment.Machine.Tool.Definition.t           val bcftools : Biokepi_run_environment.Machine.Tool.Definition.t           val vcftools : Biokepi_run_environment.Machine.Tool.Definition.t           val bedtools : Biokepi_run_environment.Machine.Tool.Definition.t           val somaticsniper :             Biokepi_run_environment.Machine.Tool.Definition.t           val varscan : Biokepi_run_environment.Machine.Tool.Definition.t           val mutect : Biokepi_run_environment.Machine.Tool.Definition.t           val gatk : Biokepi_run_environment.Machine.Tool.Definition.t           val strelka : Biokepi_run_environment.Machine.Tool.Definition.t           val virmid : Biokepi_run_environment.Machine.Tool.Definition.t           val muse : Biokepi_run_environment.Machine.Tool.Definition.t           val star : Biokepi_run_environment.Machine.Tool.Definition.t           val stringtie : Biokepi_run_environment.Machine.Tool.Definition.t           val cufflinks : Biokepi_run_environment.Machine.Tool.Definition.t           val hisat : Biokepi_run_environment.Machine.Tool.Definition.t           val hisat2 : Biokepi_run_environment.Machine.Tool.Definition.t           val mosaik : Biokepi_run_environment.Machine.Tool.Definition.t           val kallisto : Biokepi_run_environment.Machine.Tool.Definition.t           val bowtie : Biokepi_run_environment.Machine.Tool.Definition.t           val fastqc : Biokepi_run_environment.Machine.Tool.Definition.t           val igvxml : Biokepi_run_environment.Machine.Tool.Definition.t           val hlarp : Biokepi_run_environment.Machine.Tool.Definition.t           val samblaster : Biokepi_run_environment.Machine.Tool.Definition.t           val delly2 : Biokepi_run_environment.Machine.Tool.Definition.t           val optitype : Biokepi_run_environment.Machine.Tool.Definition.t           val seqtk : Biokepi_run_environment.Machine.Tool.Definition.t           val seq2hla : Biokepi_run_environment.Machine.Tool.Definition.t           val picard : Biokepi_run_environment.Machine.Tool.Definition.t           val snpeff : Biokepi_run_environment.Machine.Tool.Definition.t           val pyensembl : Biokepi_run_environment.Machine.Tool.Definition.t           val vcfannotatepolyphen :             Biokepi_run_environment.Machine.Tool.Definition.t           val topiary : Biokepi_run_environment.Machine.Tool.Definition.t           val vaxrank : Biokepi_run_environment.Machine.Tool.Definition.t           val isovar : Biokepi_run_environment.Machine.Tool.Definition.t         end       type t = {         definition : Biokepi_run_environment.Machine.Tool.Definition.t;         init : Common.KEDSL.Program.t;         ensure : Biokepi_run_environment.Common.KEDSL.phony_workflow;       }       val create :         ?init:Common.KEDSL.Program.t ->         ?ensure:< is_done : Common.KEDSL.Condition.t option; .. >                 Biokepi_run_environment.Common.KEDSL.workflow_node ->         Biokepi_run_environment.Machine.Tool.Definition.t ->         Biokepi_run_environment.Machine.Tool.t       val init :         Biokepi_run_environment.Machine.Tool.t -> Common.KEDSL.Program.t       val ensure :         Biokepi_run_environment.Machine.Tool.t ->         Biokepi_run_environment.Common.KEDSL.phony_workflow       module Kit :         sig           type tool = Biokepi_run_environment.Machine.Tool.t           type t =               Biokepi_run_environment.Machine.Tool.Definition.t ->               Biokepi_run_environment.Machine.Tool.Kit.tool option           val concat :             Biokepi_run_environment.Machine.Tool.Kit.t list ->             Biokepi_run_environment.Machine.Tool.Kit.t           val of_list :             Biokepi_run_environment.Machine.Tool.Kit.tool list ->             Biokepi_run_environment.Machine.Tool.Kit.t           val get_exn :             (Biokepi_run_environment.Machine.Tool.Definition.t -> 'a option) ->             Biokepi_run_environment.Machine.Tool.Definition.t -> 'a         end     end   module Make_fun :     sig       module Requirement :         sig           type t =               [ `Custom of string               | `Internet_access               | `Memory of [ `Big | `GB of float | `Small ]               | `Processors of int               | `Quick_run               | `Self_identification of string list               | `Spark of string list ]           val to_yojson :             Biokepi_run_environment.Machine.Make_fun.Requirement.t ->             Yojson.Safe.json           val of_yojson :             Yojson.Safe.json ->             Biokepi_run_environment.Machine.Make_fun.Requirement.t             Ppx_deriving_yojson_runtime.error_or           val pp :             Format.formatter ->             Biokepi_run_environment.Machine.Make_fun.Requirement.t ->             Ppx_deriving_runtime.unit           val show :             Biokepi_run_environment.Machine.Make_fun.Requirement.t ->             Ppx_deriving_runtime.string         end       type t =           ?name:string ->           ?requirements:Biokepi_run_environment.Machine.Make_fun.Requirement.t                         list ->           Common.KEDSL.Program.t -> Common.KEDSL.Build_process.t       val stream_processor :         ([> `Memory of [> `Small ] | `Processors of int ] as 'a) list ->         'a list       val quick : ([> `Quick_run ] as 'a) list -> 'a list       val downloading :         ([> `Internet_access | `Memory of [> `Small ] | `Processors of int ]          as 'a)         list -> 'a list       val with_self_ids :         ?self_ids:'->         ([> `Self_identification of 'a ] as 'b) list -> 'b list       val with_requirements :         Biokepi_run_environment.Machine.Make_fun.t ->         Biokepi_run_environment.Machine.Make_fun.Requirement.t list ->         Biokepi_run_environment.Machine.Make_fun.t     end   type t = {     name : string;     host : Common.KEDSL.Host.t;     pyensembl_cache_dir : string option;     get_reference_genome : string -> Reference_genome.t;     toolkit : Biokepi_run_environment.Machine.Tool.Kit.t;     run_program : Biokepi_run_environment.Machine.Make_fun.t;     work_dir : string;     max_processors : int;   }   val create :     host:Common.KEDSL.Host.t ->     ?pyensembl_cache_dir:string ->     get_reference_genome:(string -> Reference_genome.t) ->     toolkit:Biokepi_run_environment.Machine.Tool.Kit.t ->     run_program:Biokepi_run_environment.Machine.Make_fun.t ->     work_dir:string ->     max_processors:int -> string -> Biokepi_run_environment.Machine.t   val name : Biokepi_run_environment.Machine.t -> string   val as_host :     ?with_shell:string ->     Biokepi_run_environment.Machine.t -> Common.KEDSL.Host.t   val get_pyensembl_cache_dir :     Biokepi_run_environment.Machine.t -> string option   val get_reference_genome :     Biokepi_run_environment.Machine.t -> string -> Reference_genome.t   val get_tool :     Biokepi_run_environment.Machine.t ->     Biokepi_run_environment.Machine.Tool.Definition.t ->     Biokepi_run_environment.Machine.Tool.Kit.tool   val run_program :     Biokepi_run_environment.Machine.t ->     Biokepi_run_environment.Machine.Make_fun.t   val max_processors : Biokepi_run_environment.Machine.t -> int   val quick_run_program :     Biokepi_run_environment.Machine.t ->     Biokepi_run_environment.Machine.Make_fun.t   val run_stream_processor :     ?self_ids:string list ->     Biokepi_run_environment.Machine.t ->     Biokepi_run_environment.Machine.Make_fun.t   val run_download_program :     Biokepi_run_environment.Machine.t ->     Biokepi_run_environment.Machine.Make_fun.t   val run_big_program :     Biokepi_run_environment.Machine.t ->     ?processors:int ->     ?self_ids:string list -> Biokepi_run_environment.Machine.Make_fun.t   val work_dir : Biokepi_run_environment.Machine.t -> string end