Would it be possible to add the function `unsnoc :: Text -> Maybe (Text, Char)` that safely combines `init` and `last`, mirroring `uncons`? ByteString has it.