let parse_samtools s =
match String.split ~on:(`Character ':') s with
| [] -> assert false
| [one] -> `Chromosome one
| [one; two] ->
begin match String.split ~on:(`Character '-') two with
| [left; right] ->
begin match Int.of_string left, Int.of_string right with
| Some b, Some e -> `Chromosome_interval (one, b, e)
| _ -> failwithf "Cannot parse %S into 2 loci" two
end
| _ -> failwithf "Not one '-' in %S" two
end
| _ -> failwithf "Not one or zero ':' in %S" s