@@ -241,7 +241,7 @@ unpack = S.unstreamList . stream
241241{-# INLINE [1] unpack #-}
242242
243243unpack' :: JSString -> String
244- unpack' x = case js_unpack x of ( # z # ) -> z
244+ unpack' x = unsafeCoerce ( js_unpack x)
245245{-# INLINE unpack' #-}
246246
247247-- | /O(n)/ Convert a literal string into a JSString. Subject to fusion.
@@ -1181,7 +1181,7 @@ group x = group' x -- fixme, implement lazier version
11811181{-# INLINE group #-}
11821182
11831183group' :: JSString -> [JSString ]
1184- group' x = case js_group x of ( # z # ) -> z
1184+ group' x = unsafeCoerce ( js_group x)
11851185{-# INLINE group' #-}
11861186
11871187-- | /O(n^2)/ Return all initial segments of the given 'JSString', shortest
@@ -1266,7 +1266,7 @@ splitOn' :: JSString
12661266 -> [JSString ]
12671267splitOn' pat src
12681268 | null pat = emptyError " splitOn'"
1269- | otherwise = case js_splitOn pat src of ( # z # ) -> z
1269+ | otherwise = unsafeCoerce ( js_splitOn pat src)
12701270{-# NOINLINE splitOn' #-}
12711271--- {-# INLINE [1] splitOn' #-}
12721272
@@ -1314,7 +1314,7 @@ chunksOf (I# k) p = go 0#
13141314-- > chunksOf 3 "foobarbaz" == ["foo","bar","baz"]
13151315-- > chunksOf 4 "haskell.org" == ["hask","ell.","org"]
13161316chunksOf' :: Int -> JSString -> [JSString ]
1317- chunksOf' (I # k) p = case js_chunksOf k p of ( # z # ) -> z
1317+ chunksOf' (I # k) p = unsafeCoerce ( js_chunksOf k p)
13181318{-# INLINE chunksOf' #-}
13191319
13201320-- ----------------------------------------------------------------------------
@@ -1423,7 +1423,7 @@ breakOnAll' :: JSString -- ^ @needle@ to search for
14231423 -> [(JSString , JSString )]
14241424breakOnAll' pat src
14251425 | null pat = emptyError " breakOnAll'"
1426- | otherwise = case js_breakOnAll pat src of ( # z # ) -> z
1426+ | otherwise = unsafeCoerce ( js_breakOnAll pat src)
14271427{-# INLINE breakOnAll' #-}
14281428
14291429-------------------------------------------------------------------------------
@@ -1512,7 +1512,7 @@ words x = loop 0# -- js_words x {- t@(Text arr off len) = loop 0 0
15121512
15131513-- fixme: strict words' that allocates the whole list in one go
15141514words' :: JSString -> [JSString ]
1515- words' x = case js_words x of ( # z # ) -> z
1515+ words' x = unsafeCoerce ( js_words x)
15161516{-# INLINE words' #-}
15171517
15181518-- | /O(n)/ Breaks a 'JSString' up into a list of 'JSString's at
@@ -1527,7 +1527,7 @@ lines ps = loop 0#
15271527{-# INLINE lines #-}
15281528
15291529lines' :: JSString -> [JSString ]
1530- lines' ps = case js_lines ps of ( # z # ) -> z
1530+ lines' ps = unsafeCoerce ( js_lines ps)
15311531{-# INLINE lines' #-}
15321532
15331533{-
@@ -1619,7 +1619,7 @@ isInfixOf needle haystack = js_isInfixOf needle haystack
16191619-- > fnordLength (stripPrefix "fnord" -> Just suf) = T.length suf
16201620-- > fnordLength _ = -1
16211621stripPrefix :: JSString -> JSString -> Maybe JSString
1622- stripPrefix x y = case js_stripPrefix x y of ( # z # ) -> z
1622+ stripPrefix x y = unsafeCoerce ( js_stripPrefix x y)
16231623{-# INLINE stripPrefix #-}
16241624
16251625-- | /O(n)/ Find the longest non-empty common prefix of two strings
@@ -1635,7 +1635,7 @@ stripPrefix x y = case js_stripPrefix x y of (# z #) -> z
16351635-- > commonPrefixes "veeble" "fetzer" == Nothing
16361636-- > commonPrefixes "" "baz" == Nothing
16371637commonPrefixes :: JSString -> JSString -> Maybe (JSString ,JSString ,JSString )
1638- commonPrefixes x y = case js_commonPrefixes x y of ( # z # ) -> z
1638+ commonPrefixes x y = unsafeCoerce ( js_commonPrefixes x y)
16391639{-# INLINE commonPrefixes #-}
16401640
16411641-- | /O(n)/ Return the prefix of the second string if its suffix
@@ -1657,7 +1657,7 @@ commonPrefixes x y = case js_commonPrefixes x y of (# z #) -> z
16571657-- > quuxLength (stripSuffix "quux" -> Just pre) = T.length pre
16581658-- > quuxLength _ = -1
16591659stripSuffix :: JSString -> JSString -> Maybe JSString
1660- stripSuffix x y = case js_stripSuffix x y of ( # z # ) -> z
1660+ stripSuffix x y = unsafeCoerce ( js_stripSuffix x y)
16611661{-# INLINE stripSuffix #-}
16621662
16631663-- | Add a list of non-negative numbers. Errors out on overflow.
@@ -1699,7 +1699,7 @@ foreign import javascript unsafe
16991699foreign import javascript unsafe
17001700 " h$jsstringSingleton" js_singleton :: Char -> JSString
17011701foreign import javascript unsafe
1702- " h$jsstringUnpack" js_unpack :: JSString -> ( # String # )
1702+ " h$jsstringUnpack" js_unpack :: JSString -> Exts. Any -- String
17031703foreign import javascript unsafe
17041704 " h$jsstringCons" js_cons :: Char -> JSString -> JSString
17051705foreign import javascript unsafe
@@ -1737,7 +1737,7 @@ foreign import javascript unsafe
17371737foreign import javascript unsafe
17381738 " h$jsstringReverse" js_reverse :: JSString -> JSString
17391739foreign import javascript unsafe
1740- " h$jsstringGroup" js_group :: JSString -> ( # [ JSString ] # ) -- Exts.Any {- [JSString] -}
1740+ " h$jsstringGroup" js_group :: JSString -> Exts. Any {- [JSString] -}
17411741-- foreign import javascript unsafe
17421742-- "h$jsstringGroup1" js_group1
17431743-- :: Int# -> Bool -> JSString -> (# Int#, JSString #)
@@ -1751,11 +1751,11 @@ foreign import javascript unsafe
17511751foreign import javascript unsafe
17521752 " h$jsstringWords1" js_words1 :: Int # -> JSString -> (# Int # , JSString # )
17531753foreign import javascript unsafe
1754- " h$jsstringWords" js_words :: JSString -> ( # [ JSString ] # ) -- Exts.Any {- [JSString] -}
1754+ " h$jsstringWords" js_words :: JSString -> Exts. Any -- [JSString]
17551755foreign import javascript unsafe
17561756 " h$jsstringLines1" js_lines1 :: Int # -> JSString -> (# Int # , JSString # )
17571757foreign import javascript unsafe
1758- " h$jsstringLines" js_lines :: JSString -> ( # [ JSString ] # ) -- Exts.Any {- [JSString] -}
1758+ " h$jsstringLines" js_lines :: JSString -> Exts. Any -- [JSString]
17591759foreign import javascript unsafe
17601760 " h$jsstringUnlines" js_unlines :: Exts. Any {- [JSString] -} -> JSString
17611761foreign import javascript unsafe
@@ -1768,16 +1768,16 @@ foreign import javascript unsafe
17681768 " h$jsstringIsInfixOf" js_isInfixOf :: JSString -> JSString -> Bool
17691769foreign import javascript unsafe
17701770 " h$jsstringStripPrefix" js_stripPrefix
1771- :: JSString -> JSString -> ( # Maybe JSString # )
1771+ :: JSString -> JSString -> Exts. Any -- Maybe JSString
17721772foreign import javascript unsafe
17731773 " h$jsstringStripSuffix" js_stripSuffix
1774- :: JSString -> JSString -> ( # Maybe JSString # )
1774+ :: JSString -> JSString -> Exts. Any -- Maybe JSString
17751775foreign import javascript unsafe
17761776 " h$jsstringCommonPrefixes" js_commonPrefixes
1777- :: JSString -> JSString -> ( # Maybe (JSString , JSString , JSString ) # )
1777+ :: JSString -> JSString -> Exts. Any -- Maybe (JSString, JSString, JSString)
17781778foreign import javascript unsafe
17791779 " h$jsstringChunksOf" js_chunksOf
1780- :: Int # -> JSString -> ( # [JSString ] # )
1780+ :: Int # -> JSString -> Exts. Any -- [JSString]
17811781foreign import javascript unsafe
17821782 " h$jsstringChunksOf1" js_chunksOf1
17831783 :: Int # -> Int # -> JSString -> (# Int # , JSString # )
@@ -1786,7 +1786,7 @@ foreign import javascript unsafe
17861786 :: Int # -> JSString -> (# JSString , JSString # )
17871787foreign import javascript unsafe
17881788 " h$jsstringSplitOn" js_splitOn
1789- :: JSString -> JSString -> ( # [JSString ] # )
1789+ :: JSString -> JSString -> Exts. Any -- [JSString]
17901790foreign import javascript unsafe
17911791 " h$jsstringSplitOn1" js_splitOn1
17921792 :: Int # -> JSString -> JSString -> (# Int # , JSString # )
@@ -1798,7 +1798,7 @@ foreign import javascript unsafe
17981798 :: JSString -> JSString -> (# JSString , JSString # )
17991799foreign import javascript unsafe
18001800 " h$jsstringBreakOnAll" js_breakOnAll
1801- :: JSString -> JSString -> ( # [(JSString , JSString )] # )
1801+ :: JSString -> JSString -> Exts. Any -- [(JSString, JSString)]
18021802foreign import javascript unsafe
18031803 " h$jsstringBreakOnAll1" js_breakOnAll1
18041804 :: Int # -> JSString -> JSString -> (# Int # , JSString , JSString # )
0 commit comments