type t =     | Fastq of fastq     | Bam of bam   and fastq = {     fastq_sample_name : string;     files : fastq_fragment list;   }   and bam = {     bam_sample_name: string;     path: string;     how: how;     sorting: sorting option;     reference_build: string;   }   and fastq_fragment = (string option * fastq_data)   and fastq_data =     | PE of string * string     | SE of string     | Of_bam of how * sorting option * string * string   and sorting = [ `Coordinate | `Read_name ]   and how = [ `PE | `SE ]     [@@deriving show,yojson]