let rec default_extension = function
| `gzip t -> sprintf "%s.gz" (default_extension t)
| `raw_zip t -> sprintf "%s.rawzip" (default_extension t)
| `gff _ -> "gff"
| `wig _ -> "wig"
| `bam -> "bam"
| `sam -> "sam"
| `bed -> "bed"
| `fastq -> "fastq"
| `fasta _ -> "fasta"
| `table '\t' -> "tsv"
| `table c -> "table"