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