Check that SafeString is actually safe.
I feel like maybe SafeString doesn't capture the limits.
We should verify thats all that is disallowed. Particularly currently it has to be 3 chars or more because "all" is false on [], should it allow 2? Also are things like \NUL actually allowed?
Further, "safeInBetween = any (B.notElem
"<>\x0a\x00") (B.unpack b)" Should that be all of any?