X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Flib%2Fghc%2FPackedString.lhs;fp=ghc%2Flib%2Fghc%2FPackedString.lhs;h=00eea352c343107f2de80ed359aa75853f0d0365;hb=10521d8418fd3a1cf32882718b5bd28992db36fd;hp=9612dddfa0bcb3e1146ca7c45bec1911e069c82e;hpb=7fa716e248a1f11fa686965f57aebbb83b74fa7b;p=ghc-hetmet.git diff --git a/ghc/lib/ghc/PackedString.lhs b/ghc/lib/ghc/PackedString.lhs index 9612ddd..00eea35 100644 --- a/ghc/lib/ghc/PackedString.lhs +++ b/ghc/lib/ghc/PackedString.lhs @@ -3,56 +3,67 @@ % \section[PackedString]{Packed strings} -A non-weird interface to the wired-in @PackedString@ type. +A non-weird/abstract interface to the wired-in @PackedString@ type. \begin{code} module PackedString ( PackedString(..), - packString, - packCString, - packCBytes, + packString, -- :: [Char] -> PackedString + packCString, -- :: _Addr -> PackedString + packCBytes, -- :: Int -> _Addr -> PackedString + + packStringST, -- :: [Char] -> _ST s PackedString + packCBytesST, -- :: Int -> _Addr -> _ST s PackedString + packBytesForC, -- :: [Char] -> _ByteArray Int + packBytesForCST, -- :: [Char] -> _ST s (_ByteArray Int) + --NO: packStringForC, - nilPS, - consPS, - byteArrayToPS, - psToByteArray, + nilPS, -- :: PackedString + consPS, -- :: Char -> PackedString -> PackedString + byteArrayToPS, -- :: _ByteArray Int -> PackedString + psToByteArray, -- :: PackedString -> _ByteArray Int - unpackPS, + unpackPS, -- :: PackedString -> [Char] --NO: unpackPS#, - putPS, - - implode, explode, -- alt. names for packString, unpackPS - - headPS, - tailPS, - nullPS, - appendPS, - lengthPS, - indexPS, - mapPS, - filterPS, - foldlPS, - foldrPS, - takePS, - dropPS, - splitAtPS, - takeWhilePS, - dropWhilePS, - spanPS, - breakPS, - linesPS, - wordsPS, - reversePS, - concatPS, - - substrPS, + putPS, -- :: _FILE -> PackedString -> PrimIO () + getPS, -- :: _FILE -> Int -> PrimIO PackedString + + {- alt. names for packString, unpackPS -} + implode, -- :: [Char] -> PackedString + explode, -- :: PackedString -> [Char] + + headPS, -- :: PackedString -> Char + tailPS, -- :: PackedString -> PackedString + nullPS, -- :: PackedString -> Bool + appendPS, -- :: PackedString -> PackedString -> PackedString + lengthPS, -- :: PackedString -> Int + indexPS, -- :: PackedString -> Int -> Char + mapPS, -- :: (Char -> Char) -> PackedString -> PackedString + filterPS, -- :: (Char -> Bool) -> PackedString -> PackedString + foldlPS, -- :: (a -> Char -> a) -> a -> PackedString -> a + foldrPS, -- :: (Char -> a -> a) -> a -> PackedString -> a + takePS, -- :: Int -> PackedString -> PackedString + dropPS, -- :: Int -> PackedString -> PackedString + splitAtPS, -- :: Int -> PackedString -> PackedString + takeWhilePS, -- :: (Char -> Bool) -> PackedString -> PackedString + dropWhilePS, -- :: (Char -> Bool) -> PackedString -> PackedString + spanPS, -- :: (Char -> Bool) -> PackedString -> (PackedString, PackedString) + breakPS, -- :: (Char -> Bool) -> PackedString -> (PackedString, PackedString) + linesPS, -- :: PackedString -> [PackedString] + wordsPS, -- :: PackedString -> [PackedString] + reversePS, -- :: PackedString -> PackedString + concatPS, -- :: [PackedString] -> PackedString + + substrPS, -- :: PackedString -> Int -> Int -> PackedString -- to make interface self-sufficient _PackedString, -- abstract! _FILE ) where +import PS + type PackedString = _PackedString packString = _packString @@ -65,8 +76,14 @@ consPS = _consPS byteArrayToPS = _byteArrayToPS psToByteArray = _psToByteArray +packStringST = _packStringST +packCBytesST = _packCBytesST +packBytesForC = _packBytesForC +packBytesForCST = _packBytesForCST + unpackPS = _unpackPS putPS = _putPS +getPS = _getPS implode = _packString -- alt. names explode = _unpackPS