-#if __GLASGOW_HASKELL__ >= 23
-#define USE_FAST_STRINGS 1
-#define FAST_STRING _PackedString
-#define SLIT(x) (_packCString (A# x#))
-#define _CMP_STRING_ cmpPString
-#define _NULL_ _nullPS
-#define _NIL_ _nilPS
-#define _CONS_ _consPS
-#define _HEAD_ _headPS
-#define _TAIL_ _tailPS
-#define _LENGTH_ _lengthPS
-#define _PK_ _packString
-#define _UNPK_ _unpackPS
-#define _SUBSTR_ _substrPS
-#define _APPEND_ `_appendPS`
-#define _CONCAT_ _concatPS
+# define USE_FAST_STRINGS 1
+# define FAST_STRING FastString.FastString
+# define SLIT(x) (FastString.mkFastCharString# (x#))
+# define FSLIT(x) (FastString.mkFastString# (x#))
+# define _NULL_ FastString.nullFastString
+# define _NIL_ (FastString.mkFastString "")
+# define _CONS_ FastString.consFS
+# define _HEAD_ FastString.headFS
+# define _HEAD_INT_ FastString.headIntFS
+# define _TAIL_ FastString.tailFS
+# define _LENGTH_ FastString.lengthFS
+# define _PK_ FastString.mkFastString
+# define _UNPK_ FastString.unpackFS
+# define _UNPK_INT_ FastString.unpackIntFS
+# define _APPEND_ `FastString.appendFS`