let read0 ic = let iz = Bgzf.of_in_channel ic in read_sam_header iz >>= fun sam_header -> read_reference_information iz >>= fun ref_seq -> let header = { sam_header ; ref_seq } in return (header, read_alignment_stream iz)