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
    end
  module Default :
    sig
      val bwa : Biokepi_run_environment.Machine.Tool.Definition.t
      val samtools : 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 picard : 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 optitype : Biokepi_run_environment.Machine.Tool.Definition.t
      val seq2hla : 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