sig
  val ( // ) : string -> string -> string
  module File_type_specification :
    sig
      type 'a t = ..
      type 'a t +=
          To_unit :
            'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t -> 
            unit Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
        | Fastq :
            Biokepi_run_environment.Common.KEDSL.fastq_reads
            Biokepi_run_environment.Common.KEDSL.workflow_node -> [ `Fastq ]
                                                                  Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
        | Bam :
            Biokepi_run_environment.Common.KEDSL.bam_file
            Biokepi_run_environment.Common.KEDSL.workflow_node -> [ `Bam ]
                                                                  Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
        | Vcf :
            Biokepi_run_environment.Common.KEDSL.single_file
            Biokepi_run_environment.Common.KEDSL.workflow_node -> [ `Vcf ]
                                                                  Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
        | Gtf :
            Biokepi_run_environment.Common.KEDSL.single_file
            Biokepi_run_environment.Common.KEDSL.workflow_node -> [ `Gtf ]
                                                                  Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
        | Seq2hla_result :
            Biokepi_run_environment.Common.KEDSL.list_of_files
            Biokepi_run_environment.Common.KEDSL.workflow_node -> [ `Seq2hla_result ]
                                                                  Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
        | Optitype_result :
            Biokepi_run_environment.Common.KEDSL.unknown_product
            Biokepi_run_environment.Common.KEDSL.workflow_node -> [ `Optitype_result ]
                                                                  Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
        | Gz :
            'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t -> 
            [ `Gz of 'a ]
            Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
        | List :
            'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
            list -> 'a list
                    Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
        | Pair :
            'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t *
            'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t -> 
            ('a * 'b)
            Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
        | Lambda :
            ('Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
             'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t) -> 
            ('-> 'b)
            Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
      val to_string : 'a t -> string
      val fail_get :
        'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        string -> 'b
      val get_fastq :
        [ `Fastq ]
        Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        Biokepi_run_environment.Common.KEDSL.fastq_reads
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val get_bam :
        [ `Bam ] Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        Biokepi_run_environment.Common.KEDSL.bam_file
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val get_vcf :
        [ `Vcf ] Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        Biokepi_run_environment.Common.KEDSL.single_file
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val get_gtf :
        [ `Gtf ] Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        Biokepi_run_environment.Common.KEDSL.single_file
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val get_seq2hla_result :
        [ `Seq2hla_result ]
        Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        Biokepi_run_environment.Common.KEDSL.list_of_files
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val get_optitype_result :
        [ `Optitype_result ]
        Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        Biokepi_run_environment.Common.KEDSL.unknown_product
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val get_gz :
        [ `Gz of 'a ]
        Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
      val get_list :
        'a list Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t list
      val pair :
        'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        ('a * 'b) Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
      val pair_first :
        ('a * 'b) Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
      val pair_second :
        ('a * 'b) Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        'Biokepi_pipeline_edsl.To_workflow.File_type_specification.t
      val as_dependency_edges :
        'a t -> Biokepi_run_environment.Common.KEDSL.workflow_edge list
      val get_unit_workflow :
        name:string ->
        unit Biokepi_pipeline_edsl.To_workflow.File_type_specification.t ->
        Biokepi_run_environment.Common.KEDSL.unknown_product
        Biokepi_run_environment.Common.KEDSL.workflow_node
    end
  module type Compiler_configuration =
    sig
      val work_dir : string
      val machine : Biokepi_run_environment.Machine.t
      val map_reduce_gatk_indel_realigner : bool
    end
  module Defaults : sig val map_reduce_gatk_indel_realigner : bool end
  module Make :
    functor (Config : Compiler_configuration->
      sig
        type 'a repr = 'File_type_specification.t
        val lambda : ('a repr -> 'b repr) -> ('-> 'b) repr
        val apply : ('-> 'b) repr -> 'a repr -> 'b repr
        type 'a observation = 'File_type_specification.t
        val observe : (unit -> 'a repr) -> 'a observation
        val list : 'a repr list -> 'a list repr
        val list_map : 'a list repr -> f:('-> 'b) repr -> 'b list repr
        val pair : 'a repr -> 'b repr -> ('a * 'b) repr
        val pair_first : ('a * 'b) repr -> 'a repr
        val pair_second : ('a * 'b) repr -> 'b repr
        val to_unit : 'a repr -> unit repr
        val fastq :
          sample_name:string ->
          ?fragment_id:string ->
          r1:string -> ?r2:string -> unit -> [ `Fastq ] repr
        val fastq_gz :
          sample_name:string ->
          ?fragment_id:string ->
          r1:string -> ?r2:string -> unit -> [ `Gz of [ `Fastq ] ] repr
        val bam :
          path:string ->
          ?sorting:[ `Coordinate | `Read_name ] ->
          reference_build:string -> unit -> [ `Bam ] repr
        val gunzip : [ `Gz of 'a ] repr -> 'a repr
        val gunzip_concat : [ `Gz of 'a ] list repr -> 'a repr
        val concat : 'a list repr -> 'a repr
        val merge_bams : [ `Bam ] list repr -> [ `Bam ] repr
        val bam_to_fastq :
          sample_name:string ->
          ?fragment_id:string ->
          [ `PE | `SE ] -> [ `Bam ] repr -> [ `Fastq ] repr
        val bwa_aln :
          ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Aln.t ->
          reference_build:Biokepi_run_environment.Reference_genome.name ->
          [ `Fastq ] repr -> [ `Bam ] repr
        val bwa_mem :
          ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Mem.t ->
          reference_build:Biokepi_run_environment.Reference_genome.name ->
          [ `Fastq ] repr -> [ `Bam ] repr
        val star :
          ?configuration:Biokepi_bfx_tools.Star.Configuration.Align.t ->
          reference_build:Biokepi_run_environment.Reference_genome.name ->
          [ `Fastq ] repr -> [ `Bam ] repr
        val hisat :
          ?configuration:Biokepi_bfx_tools.Hisat.Configuration.t ->
          reference_build:Biokepi_run_environment.Reference_genome.name ->
          [ `Fastq ] repr -> [ `Bam ] repr
        val mosaik :
          reference_build:Biokepi_run_environment.Reference_genome.name ->
          [ `Fastq ] repr -> [ `Bam ] repr
        val stringtie :
          ?configuration:Biokepi_bfx_tools.Stringtie.Configuration.t ->
          [ `Bam ] repr -> [ `Gtf ] repr
        val gatk_indel_realigner :
          ?configuration:Biokepi_bfx_tools.Gatk.Configuration.indel_realigner ->
          [ `Bam ] repr -> [ `Bam ] repr
        val gatk_indel_realigner_joint :
          ?configuration:Biokepi_bfx_tools.Gatk.Configuration.indel_realigner ->
          ([ `Bam ] * [ `Bam ]) repr -> ([ `Bam ] * [ `Bam ]) repr
        val picard_mark_duplicates :
          ?configuration:Biokepi_bfx_tools.Picard.Mark_duplicates_settings.t ->
          [ `Bam ] repr -> [ `Bam ] repr
        val gatk_bqsr :
          ?configuration:Biokepi_bfx_tools.Gatk.Configuration.bqsr ->
          [ `Bam ] repr -> [ `Bam ] repr
        val seq2hla : [ `Fastq ] repr -> [ `Seq2hla_result ] repr
        val optitype :
          [ `DNA | `RNA ] -> [ `Fastq ] repr -> [ `Optitype_result ] repr
        val gatk_haplotype_caller : [ `Bam ] repr -> [ `Vcf ] repr
        val mutect :
          ?configuration:Biokepi_bfx_tools.Mutect.Configuration.t ->
          normal:[ `Bam ] repr ->
          tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
        val mutect2 :
          ?configuration:Biokepi_bfx_tools.Gatk.Configuration.Mutect2.t ->
          normal:[ `Bam ] repr ->
          tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
        val somaticsniper :
          ?configuration:Biokepi_bfx_tools.Somaticsniper.Configuration.t ->
          normal:[ `Bam ] repr ->
          tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
        val varscan_somatic :
          ?adjust_mapq:int ->
          normal:[ `Bam ] repr ->
          tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
        val strelka :
          ?configuration:Biokepi_bfx_tools.Strelka.Configuration.t ->
          normal:[ `Bam ] repr ->
          tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
        val virmid :
          ?configuration:Biokepi_bfx_tools.Virmid.Configuration.t ->
          normal:[ `Bam ] repr ->
          tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
        val muse :
          ?configuration:Biokepi_bfx_tools.Muse.Configuration.t ->
          normal:[ `Bam ] repr ->
          tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
      end
end