{-# language DataKinds #-}
{-# language MagicHash #-}
{-# language UnboxedTuples #-}
module Basics.Char
(
T
, T#
, R
, lift
, unlift
, read#
, write#
, index#
, set#
, shrink#
, def
, size
) where
import GHC.Exts hiding (setByteArray#)
import qualified Foreign.Storable as FS
import qualified GHC.Exts as Exts
type T = Char
type T# = Char#
type R = 'WordRep
def :: T
def :: T
def = T
'z'
size :: Int
size :: Int
size = forall a. Storable a => a -> Int
FS.sizeOf (forall a. HasCallStack => a
undefined :: T)
lift :: T# -> T
lift :: T# -> T
lift = T# -> T
C#
unlift :: T -> T#
unlift :: T -> T#
unlift (C# T#
i) = T#
i
index# :: ByteArray# -> Int# -> T#
index# :: ByteArray# -> Int# -> T#
index# = ByteArray# -> Int# -> T#
indexWideCharArray#
read# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, T# #)
read# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, T# #)
read# = forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, T# #)
readWideCharArray#
write# :: MutableByteArray# s -> Int# -> T# -> State# s -> State# s
write# :: forall s. MutableByteArray# s -> Int# -> T# -> State# s -> State# s
write# = forall s. MutableByteArray# s -> Int# -> T# -> State# s -> State# s
writeWideCharArray#
set# :: MutableByteArray# s -> Int# -> Int# -> T# -> State# s -> State# s
set# :: forall s.
MutableByteArray# s -> Int# -> Int# -> T# -> State# s -> State# s
set# MutableByteArray# s
marr Int#
off Int#
len T#
x State# s
s = case Int#
len of
Int#
0# -> State# s
s
Int#
_ -> forall s.
MutableByteArray# s -> Int# -> Int# -> T# -> State# s -> State# s
set# MutableByteArray# s
marr (Int#
off Int# -> Int# -> Int#
+# Int#
1# ) (Int#
len Int# -> Int# -> Int#
-# Int#
1# ) T#
x (forall s. MutableByteArray# s -> Int# -> T# -> State# s -> State# s
write# MutableByteArray# s
marr Int#
off T#
x State# s
s)
shrink# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, MutableByteArray# s #)
shrink# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, MutableByteArray# s #)
shrink# MutableByteArray# s
m Int#
i State# s
s0 = (# forall d. MutableByteArray# d -> Int# -> State# d -> State# d
Exts.shrinkMutableByteArray# MutableByteArray# s
m (Int#
i Int# -> Int# -> Int#
*# Int#
4#) State# s
s0, MutableByteArray# s
m #)