Span

This crate exists mostly because Rust's Range<usize> doesn't implement Copy due to backwards compatibility.