Currently [`Data.Text.index`](https://hackage-content.haskell.org/package/text-2.1.3/docs/Data-Text.html#v:index) goes a long route via streaming representation. It would be much faster just [`measureOff`](https://hackage-content.haskell.org/package/text-2.1.3/docs/Data-Text.html#v:measureOff) and peek the next `Char`.