In the docs, I saw that [Slice](https://pkg.go.dev/github.com/grailbio/bigslice#Slice) mentions how Go doesn't have generics and therefore relies on dynamic typechecking. Well now we have them! Could potentially solve #115 by failing compilation - the earliest failure. Would it be worth the squeeze to replace the dynamic typechecking with static via generics? If it seems worth a short for a good first issue, I'd work on this.