2 The implementation of FastString output need to get at the representation
3 to Handles to do a Good Job. Prelude modules in 0.29 does not export
4 the Handle repr., this little hack fixes this :-)
6 Also added mkUniqueGrimily to avoid bootstrap trouble
9 interface HandleHack where
11 import PreludeStdIO (Handle(..), _Handle(..), _filePtr,_readHandle, _writeHandle, BufferMode, Maybe)
12 import PreludeIOError (_constructError,IOError13(..))
13 import PreludeGlaST (_MutableArray, _RealWorld)
14 import Unique ( Unique, mkUniqueGrimily )
16 type Handle = _MutableArray _RealWorld Int _Handle
17 data _Handle = _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool
20 mkUniqueGrimily :: Int# -> Unique
22 _filePtr :: _Handle -> _Addr
23 _readHandle :: Handle -> IO _Handle
24 _writeHandle :: Handle -> _Handle -> IO ()
25 _constructError :: String -> PrimIO IOError13