Wow, typo(s) of the week! Or do I mean the decade?
authorBryan O'Sullivan <bos@serpentine.com>
Sun, 21 May 2017 03:59:52 +0000 (20:59 -0700)
committerBryan O'Sullivan <bos@serpentine.com>
Sun, 21 May 2017 03:59:52 +0000 (20:59 -0700)
This bug has been latent for 6.75 years, and lay dormant all that
time because the Arbitrary instance for Char only generates ASCII.

I just switched the Arbitrary instance for Text to generate a wider
range of Unicode code points, thanks to the quickcheck-unicode
package.  (I'm afraid I don't recall why I didn't do this much
earlier...)

Data/Text/Foreign.hs

index 8f273d9..890deca 100644 (file)
@@ -108,7 +108,7 @@ takeWord16 (I16 n) t@(Text arr off len)
     | n >= len || m >= len = t
     | otherwise            = Text arr off m
   where
-    m | w < 0xDB00 || w > 0xD8FF = n
+    m | w < 0xD800 || w > 0xDBFF = n
       | otherwise                = n+1
     w = A.unsafeIndex arr (off+n-1)