@@ -386,8 +386,8 @@ indexError sbs i =
386386------------------------------------------------------------------------ 
387387--  Internal utils
388388
389- asBA  ::  ShortByteString  ->  BA 
390- asBA (unSBS  ->  ba # ) =  BA #  ba # 
389+ asBA  ::  ShortByteString  ->  ByteArray 
390+ asBA (ShortByteString  ba ) =  ba 
391391
392392unSBS  ::  ShortByteString  ->  ByteArray # 
393393unSBS (ShortByteString  (ByteArray  ba# )) =  ba# 
@@ -397,8 +397,7 @@ create len fill =
397397    assert (len >=  0 ) $  runST $  do 
398398      mba <-  newByteArray len
399399      fill mba
400-       BA #  ba#  <-  unsafeFreezeByteArray mba
401-       return  (SBS  ba# )
400+       ShortByteString  <$>  unsafeFreezeByteArray mba
402401{-# INLINE  create #-}
403402
404403--  |  Given the maximum size needed and a function to make the contents 
@@ -413,13 +412,13 @@ createAndTrim maxLen fill =
413412      (len, res) <-  fill mba
414413      if  assert (0  <=  len &&  len <=  maxLen) $  len >=  maxLen
415414          then  do 
416-             BA #  ba #  <-  unsafeFreezeByteArray mba
417-             return  (SBS  ba# , res)
415+             ba  <-  unsafeFreezeByteArray mba
416+             return  (ShortByteString  ba, res)
418417          else  do 
419418            mba2 <-  newByteArray len
420419            copyMutableByteArray mba 0  mba2 0  len
421-             BA #  ba #  <-  unsafeFreezeByteArray mba2
422-             return  (SBS  ba# , res)
420+             ba  <-  unsafeFreezeByteArray mba2
421+             return  (ShortByteString  ba, res)
423422{-# INLINE  createAndTrim #-}
424423
425424createAndTrim'  ::  Int ->  (forall  s .  MBA  s  ->  ST  s  Int ->  ShortByteString 
@@ -429,13 +428,11 @@ createAndTrim' maxLen fill =
429428      len <-  fill mba
430429      if  assert (0  <=  len &&  len <=  maxLen) $  len >=  maxLen
431430          then  do 
432-             BA #  ba#  <-  unsafeFreezeByteArray mba
433-             return  (SBS  ba# )
431+             ShortByteString  <$>  unsafeFreezeByteArray mba
434432          else  do 
435433            mba2 <-  newByteArray len
436434            copyMutableByteArray mba 0  mba2 0  len
437-             BA #  ba#  <-  unsafeFreezeByteArray mba2
438-             return  (SBS  ba# )
435+             ShortByteString  <$>  unsafeFreezeByteArray mba2
439436{-# INLINE  createAndTrim' #-}
440437
441438--  |  Like createAndTrim, but with two buffers at once 
@@ -453,13 +450,11 @@ createAndTrim2 maxLen1 maxLen2 fill =
453450    freeze' len maxLen mba = 
454451      if  assert (0  <=  len &&  len <=  maxLen) $  len >=  maxLen
455452          then  do 
456-             BA #  ba#  <-  unsafeFreezeByteArray mba
457-             return  (SBS  ba# )
453+             ShortByteString  <$>  unsafeFreezeByteArray mba
458454          else  do 
459455            mba2 <-  newByteArray len
460456            copyMutableByteArray mba 0  mba2 0  len
461-             BA #  ba#  <-  unsafeFreezeByteArray mba2
462-             return  (SBS  ba# )
457+             ShortByteString  <$>  unsafeFreezeByteArray mba2
463458{-# INLINE  createAndTrim2 #-}
464459
465460isPinned  ::  ByteArray #  ->  Bool 
@@ -485,8 +480,7 @@ toShortIO (BS fptr len) = do
485480    let  ptr =  unsafeForeignPtrToPtr fptr
486481    stToIO (copyAddrToByteArray ptr mba 0  len)
487482    touchForeignPtr fptr
488-     BA #  ba#  <-  stToIO (unsafeFreezeByteArray mba)
489-     return  (SBS  ba# )
483+     ShortByteString  <$>  stToIO (unsafeFreezeByteArray mba)
490484
491485--  |  /O(n)/. Convert a 'ShortByteString' into a 'ByteString'. 
492486-- 
@@ -783,7 +777,7 @@ map f = \sbs ->
783777        ba =  asBA sbs
784778    in  create l (\ mba ->  go ba mba 0  l)
785779  where 
786-     go  ::  BA  ->  MBA  s  ->  Int ->  Int ->  ST  s  () 
780+     go  ::  ByteArray  ->  MBA  s  ->  Int ->  Int ->  ST  s  () 
787781    go ! ba ! mba ! i ! l
788782      |  i >=  l =  return  () 
789783      |  otherwise  =  do 
@@ -802,7 +796,7 @@ reverse = \sbs ->
802796#if  HS_UNALIGNED_ByteArray_OPS_OK
803797    in  create l (\ mba ->  go ba mba l)
804798  where 
805-     go  ::  forall  s .  BA  ->  MBA  s  ->  Int ->  ST  s  () 
799+     go  ::  forall  s .  ByteArray  ->  MBA  s  ->  Int ->  ST  s  () 
806800    go ! ba ! mba ! l =  do 
807801      --  this is equivalent to: (q, r) = l `quotRem` 8
808802      let  q =  l `shiftR`  3 
@@ -835,7 +829,7 @@ reverse = \sbs ->
835829#else 
836830    in  create l (\ mba ->  go ba mba 0  l)
837831   where 
838-     go  ::  BA  ->  MBA  s  ->  Int ->  Int ->  ST  s  () 
832+     go  ::  ByteArray  ->  MBA  s  ->  Int ->  Int ->  ST  s  () 
839833    go ! ba ! mba ! i ! l
840834      |  i >=  l =  return  () 
841835      |  otherwise  =  do 
@@ -1437,7 +1431,7 @@ filter k = \sbs -> let l = length sbs
14371431                         |  otherwise  ->  createAndTrim' l $  \ mba ->  go mba (asBA sbs) l
14381432  where 
14391433    go  ::  forall  s .  MBA  s  --  mutable output bytestring
1440-        ->  BA                --  input bytestring
1434+        ->  ByteArray        --  input bytestring
14411435       ->  Int --  length of input bytestring
14421436       ->  ST  s  Int 
14431437    go ! mba ba ! l =  go' 0  0 
@@ -1485,7 +1479,7 @@ partition k = \sbs -> let len = length sbs
14851479    go  ::  forall  s . 
14861480          MBA  s            --  mutable output bytestring1
14871481       ->  MBA  s            --  mutable output bytestring2
1488-        ->  BA                --  input bytestring
1482+        ->  ByteArray        --  input bytestring
14891483       ->  Int --  length of input bytestring
14901484       ->  ST  s  (Int Int --  (length mba1, length mba2)
14911485    go ! mba1 ! mba2 ba ! l =  go' 0  0 
@@ -1586,25 +1580,23 @@ createFromPtr !ptr len =
15861580    stToIO $  do 
15871581      mba <-  newByteArray len
15881582      copyAddrToByteArray ptr mba 0  len
1589-       BA #  ba#  <-  unsafeFreezeByteArray mba
1590-       return  (SBS  ba# )
1583+       ShortByteString  <$>  unsafeFreezeByteArray mba
15911584
15921585
15931586------------------------------------------------------------------------ 
15941587--  Primop wrappers
15951588
1596- data  BA     =  BA #  ByteArray # 
15971589data  MBA  s  =  MBA #  (MutableByteArray #  s )
15981590
1599- indexCharArray  ::  BA  ->  Int ->  Char 
1600- indexCharArray (BA #  ba# ) (I #  i# ) =  C #  (indexCharArray#  ba#  i# )
1591+ indexCharArray  ::  ByteArray  ->  Int ->  Char 
1592+ indexCharArray (ByteArray  ba# ) (I #  i# ) =  C #  (indexCharArray#  ba#  i# )
16011593
1602- indexWord8Array  ::  BA  ->  Int ->  Word8 
1603- indexWord8Array (BA #  ba# ) (I #  i# ) =  W8 #  (indexWord8Array#  ba#  i# )
1594+ indexWord8Array  ::  ByteArray  ->  Int ->  Word8 
1595+ indexWord8Array (ByteArray  ba# ) (I #  i# ) =  W8 #  (indexWord8Array#  ba#  i# )
16041596
16051597#if  HS_UNALIGNED_ByteArray_OPS_OK
1606- indexWord8ArrayAsWord64  ::  BA  ->  Int ->  Word64 
1607- indexWord8ArrayAsWord64 (BA #  ba# ) (I #  i# ) =  W64 #  (indexWord8ArrayAsWord64#  ba#  i# )
1598+ indexWord8ArrayAsWord64  ::  ByteArray  ->  Int ->  Word64 
1599+ indexWord8ArrayAsWord64 (ByteArray  ba# ) (I #  i# ) =  W64 #  (indexWord8ArrayAsWord64#  ba#  i# )
16081600#endif 
16091601
16101602newByteArray  ::  Int ->  ST  s  (MBA  s )
@@ -1619,10 +1611,10 @@ newPinnedByteArray len@(I# len#) =
16191611    ST  $  \ s ->  case  newPinnedByteArray#  len#  s of 
16201612                 (#  s', mba#  # ) ->  (#  s', MBA #  mba#  # )
16211613
1622- unsafeFreezeByteArray  ::  MBA  s  ->  ST  s  BA 
1614+ unsafeFreezeByteArray  ::  MBA  s  ->  ST  s  ByteArray 
16231615unsafeFreezeByteArray (MBA #  mba# ) = 
16241616    ST  $  \ s ->  case  unsafeFreezeByteArray#  mba#  s of 
1625-                  (#  s', ba#  # ) ->  (#  s', BA #  ba#  # )
1617+                  (#  s', ba#  # ) ->  (#  s', ByteArray  ba#  # )
16261618
16271619writeWord8Array  ::  MBA  s  ->  Int ->  Word8  ->  ST  s  () 
16281620writeWord8Array (MBA #  mba# ) (I #  i# ) (W8 #  w# ) = 
@@ -1641,13 +1633,13 @@ copyAddrToByteArray (Ptr src#) (MBA# dst#) (I# dst_off#) (I# len#) =
16411633    ST  $  \ s ->  case  copyAddrToByteArray#  src#  dst#  dst_off#  len#  s of 
16421634                 s' ->  (#  s', ()  # )
16431635
1644- copyByteArrayToAddr  ::  BA  ->  Int ->  Ptr  a  ->  Int ->  ST  RealWorld  () 
1645- copyByteArrayToAddr (BA #  src# ) (I #  src_off# ) (Ptr  dst# ) (I #  len# ) = 
1636+ copyByteArrayToAddr  ::  ByteArray  ->  Int ->  Ptr  a  ->  Int ->  ST  RealWorld  () 
1637+ copyByteArrayToAddr (ByteArray  src# ) (I #  src_off# ) (Ptr  dst# ) (I #  len# ) = 
16461638    ST  $  \ s ->  case  copyByteArrayToAddr#  src#  src_off#  dst#  len#  s of 
16471639                 s' ->  (#  s', ()  # )
16481640
1649- copyByteArray  ::  BA  ->  Int ->  MBA  s  ->  Int ->  Int ->  ST  s  () 
1650- copyByteArray (BA #  src# ) (I #  src_off# ) (MBA #  dst# ) (I #  dst_off# ) (I #  len# ) = 
1641+ copyByteArray  ::  ByteArray  ->  Int ->  MBA  s  ->  Int ->  Int ->  ST  s  () 
1642+ copyByteArray (ByteArray  src# ) (I #  src_off# ) (MBA #  dst# ) (I #  dst_off# ) (I #  len# ) = 
16511643    ST  $  \ s ->  case  copyByteArray#  src#  src_off#  dst#  dst_off#  len#  s of 
16521644                 s' ->  (#  s', ()  # )
16531645
@@ -1665,20 +1657,20 @@ copyMutableByteArray (MBA# src#) (I# src_off#) (MBA# dst#) (I# dst_off#) (I# len
16651657------------------------------------------------------------------------ 
16661658--  FFI imports
16671659-- 
1668- compareByteArrays  ::  BA  ->  BA  ->  Int ->  Int 
1660+ compareByteArrays  ::  ByteArray  ->  ByteArray  ->  Int ->  Int 
16691661compareByteArrays ba1 ba2 =  compareByteArraysOff ba1 0  ba2 0 
16701662
1671- compareByteArraysOff  ::  BA   --  ^  array 1 
1663+ compareByteArraysOff  ::  ByteArray   --  ^  array 1 
16721664                     ->  Int --  ^  offset for array 1 
1673-                      ->  BA   --  ^  array 2 
1665+                      ->  ByteArray   --  ^  array 2 
16741666                     ->  Int --  ^  offset for array 2 
16751667                     ->  Int --  ^  length to compare 
16761668                     ->  Int --  ^  like memcmp 
16771669#if  MIN_VERSION_base(4,11,0)
1678- compareByteArraysOff (BA #  ba1# ) (I #  ba1off# ) (BA #  ba2# ) (I #  ba2off# ) (I #  len# ) = 
1670+ compareByteArraysOff (ByteArray  ba1# ) (I #  ba1off# ) (ByteArray  ba2# ) (I #  ba2off# ) (I #  len# ) = 
16791671  I #  (compareByteArrays#   ba1#  ba1off#  ba2#  ba2off#  len# )
16801672#else 
1681- compareByteArraysOff (BA #  ba1# ) ba1off (BA #  ba2# ) ba2off len = 
1673+ compareByteArraysOff (ByteArray  ba1# ) ba1off (ByteArray  ba2# ) ba2off len = 
16821674  assert (ba1off +  len <=  (I #  (sizeofByteArray#  ba1# )))
16831675  $  assert (ba2off +  len <=  (I #  (sizeofByteArray#  ba2# )))
16841676  $  fromIntegral  $  accursedUnutterablePerformIO $ 
0 commit comments