  High-throughput sequencing file formats and tools encode coordinate intervals
with respect to a reference sequence in at least four distinct, incompatible
ways. Integrating data from and moving data between different formats has the
potential to introduce subtle off-by-one errors. Here, we introduce the notion
of typesafe coordinates: coordinate intervals are not only an integer pair, but
members of a type class comprising four types: the Cartesian product of a zero
or one basis, and an open or closed interval end. By leveraging the type system
of statically and strongly-typed, compiled languages we can provide static
guarantees that an entire class of error is eliminated. We provide a reference
implementation in D as part of a larger work (dhtslib), and proofs of concept
in Rust, OCaml, and Python. Exploratory implementations are available at
https://github.com/blachlylab/typesafe-coordinates.
