--- UnicodeRepos.hs	2012-10-30 18:52:30.000000000 -0700
+++ Unicode.hs	2012-10-30 18:55:09.000000000 -0700
@@ -66,18 +66,17 @@
 
 -- | Returns 'True' for any Unicode space character, and the control
 -- characters @\\t@, @\\n@, @\\r@, @\\f@, @\\v@.
-isSpace                 :: Char -> Bool
--- isSpace includes non-breaking space
--- Done with explicit equalities both for efficiency, and to avoid a tiresome
--- recursion with GHC.List elem
-isSpace c               =  c == ' '     ||
-                           c == '\t'    ||
-                           c == '\n'    ||
-                           c == '\r'    ||
-                           c == '\f'    ||
-                           c == '\v'    ||
-                           c == '\xa0'  ||
-                           iswspace (fromIntegral (ord c)) /= 0
+isSpace :: Char -> Bool
+isSpace ' '                 = True
+isSpace '\n'                = True
+isSpace '\t'                = True
+isSpace '\r'                = True
+isSpace '\v'                = True
+isSpace '\f'                = True
+isSpace '\xA0'              = True
+isSpace c | c <  '\x1680'   = False  -- avoid expensive call to iswspace
+          | otherwise       = iswspace (fromIntegral (ord c)) /= 0
+-- NB there are no space characters between xA0 and x1680.
 
 -- | Selects upper-case or title-case alphabetic Unicode characters (letters).
 -- Title case is used by a small number of letter ligatures like the
