sig   module Remove = Biokepi_run_environment.Workflow_utilities.Remove   module Configuration :     sig       module Common_config :         sig           type t = {             name : string;             gap_open_penalty : int;             gap_extension_penalty : int;             mismatch_penalty : int;           }         end       module Bwa_config :         functor           (D : sig                  val default :                    Biokepi_bfx_tools.Bwa.Configuration.Common_config.t                end->           sig             type t =               Common_config.t = {               name : string;               gap_open_penalty : int;               gap_extension_penalty : int;               mismatch_penalty : int;             }             val name : t -> string             val default : Biokepi_bfx_tools.Bwa.Configuration.Common_config.t             val to_json :               t ->               [> `Assoc of                    (string * [> `Int of int | `String of string ]) list ]           end       val bwa_mem_default :         Biokepi_bfx_tools.Bwa.Configuration.Common_config.t       module Mem :         sig           type t =             Common_config.t = {             name : string;             gap_open_penalty : int;             gap_extension_penalty : int;             mismatch_penalty : int;           }           val name : t -> string           val default : Common_config.t           val to_json :             t ->             [> `Assoc of (string * [> `Int of int | `String of string ]) list ]         end       val bwa_aln_default :         Biokepi_bfx_tools.Bwa.Configuration.Common_config.t       module Aln :         sig           type t =             Common_config.t = {             name : string;             gap_open_penalty : int;             gap_extension_penalty : int;             mismatch_penalty : int;           }           val name : t -> string           val default : Common_config.t           val to_json :             t ->             [> `Assoc of (string * [> `Int of int | `String of string ]) list ]         end     end   val index :     reference_build:string ->     run_with:Biokepi_run_environment.Machine.t ->     < exists : Ketrew_pure.Target.Condition.t;       host : Biokepi_run_environment.Common.KEDSL.Host.t;       is_bigger_than : int -> Ketrew_pure.Target.Condition.t;       is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;       path : string >     Biokepi_run_environment.Common.KEDSL.workflow_node   val read_group_header_option :     [< `Aln | `Mem ] -> sample_name:string -> read_group_id:string -> string   val mem_align_to_sam :     reference_build:string ->     ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Mem.t ->     fastq:< escaped_sample_name : string;             is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;             paths : string * string option; .. >           Biokepi_run_environment.Common.KEDSL.workflow_node ->     result_prefix:string ->     run_with:Biokepi_run_environment.Machine.t ->     unit ->     < exists : Ketrew_pure.Target.Condition.t;       host : Biokepi_run_environment.Common.KEDSL.Host.t;       is_bigger_than : int -> Ketrew_pure.Target.Condition.t;       is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;       path : string >     Biokepi_run_environment.Common.KEDSL.workflow_node   val align_to_sam :     reference_build:string ->     ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Aln.t ->     fastq:< escaped_sample_name : string;             is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;             paths : string * string option; .. >           Biokepi_run_environment.Common.KEDSL.workflow_node ->     result_prefix:string ->     run_with:Biokepi_run_environment.Machine.t ->     unit ->     < exists : Ketrew_pure.Target.Condition.t;       host : Biokepi_run_environment.Common.KEDSL.Host.t;       is_bigger_than : int -> Ketrew_pure.Target.Condition.t;       is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;       path : string >     Biokepi_run_environment.Common.KEDSL.workflow_node   module Input_reads :     sig       type t =           [ `Bam of               Biokepi_run_environment.Common.KEDSL.bam_file               Biokepi_run_environment.Common.KEDSL.workflow_node *               [ `PE | `SE ]           | `Fastq of               Biokepi_run_environment.Common.KEDSL.fastq_reads               Biokepi_run_environment.Common.KEDSL.workflow_node ]       val prepare :         run_with:Biokepi_run_environment.Machine.t ->         [< `Bam of              Biokepi_run_environment.Common.KEDSL.bam_file              Biokepi_run_environment.Common.KEDSL.workflow_node * 'a          | `Fastq of 'b ] ->         [> `Bam of              Biokepi_run_environment.Common.KEDSL.bam_file              Biokepi_run_environment.Common.KEDSL.workflow_node * 'a          | `Fastq of 'b ]       val name :         [< `Bam of < product : < path : string; .. >; .. > * 'a          | `Fastq of < product : < paths : string * 'b; .. >; .. > ] ->         string       val sample_name :         [< `Bam of < product : < escaped_sample_name : 'a; .. >; .. > * 'b          | `Fastq of < product : < escaped_sample_name : 'a; .. >; .. > ] ->         'a       val read_group_id :         [< `Bam of < product : < path : string; .. >; .. > * 'a          | `Fastq of < product : < paths : string * 'b; .. >; .. > ] ->         string       val as_dependencies :         [< `Bam of              < is_done : Biokepi_run_environment.Common.KEDSL.Condition.t                          option;                .. >              Biokepi_run_environment.Common.KEDSL.workflow_node * 'a          | `Fastq of              < is_done : Biokepi_run_environment.Common.KEDSL.Condition.t                          option;                .. >              Biokepi_run_environment.Common.KEDSL.workflow_node ] ->         Biokepi_run_environment.Common.KEDSL.workflow_edge list     end   val mem_align_to_bam :     reference_build:string ->     ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Mem.t ->     result_prefix:string ->     run_with:Biokepi_run_environment.Machine.t ->     Biokepi_bfx_tools.Bwa.Input_reads.t ->     < escaped_sample_name : string;       host : Biokepi_run_environment.Common.KEDSL.Host.t;       is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;       path : string; reference_build : string; sample_name : string;       sorting : [ `Coordinate | `Read_name ] option >     Biokepi_run_environment.Common.KEDSL.workflow_node end