% ------------------------------------------------------------------------------
-% $Id: PrelIOBase.lhs,v 1.39 2001/05/22 15:06:47 simonmar Exp $
+% $Id: PrelIOBase.lhs,v 1.40 2001/05/22 19:25:49 qrczak Exp $
%
% (c) The University of Glasgow, 1994-2001
%
module PrelIOBase where
import PrelST
-import PrelRead
import PrelArr
import PrelBase
import PrelNum -- To get fromInteger etc, needed because of -fno-implicit-prelude
import PrelMaybe ( Maybe(..) )
import PrelShow
import PrelList
+import PrelRead
import PrelDynamic
-- ---------------------------------------------------------------------------
bufferEmpty :: Buffer -> Bool
bufferEmpty Buffer{ bufRPtr=r, bufWPtr=w } = r == w
-bufferEmpty _other = False
-- only makes sense for a write buffer
bufferFull :: Buffer -> Bool
data BufferMode
= NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
- deriving (Eq, Ord, Show, Read)
+ deriving (Eq, Ord, Read, Show)
-- ---------------------------------------------------------------------------
-- IORefs
% ------------------------------------------------------------------------------
-% $Id: PrelRead.lhs,v 1.18 2001/02/28 00:01:03 qrczak Exp $
+% $Id: PrelRead.lhs,v 1.19 2001/05/22 19:25:49 qrczak Exp $
%
% (c) The University of Glasgow, 1994-2000
%
module PrelRead where
-import PrelErr ( error )
+import {-# SOURCE #-} PrelErr ( error )
import PrelEnum ( Enum(..), maxBound )
import PrelNum
import PrelReal
import PrelBase
-- needed for readIO and instance Read Buffermode
-import PrelIOBase ( IO, userError, BufferMode(..) )
-import PrelException ( ioError )
+--import PrelIOBase ( IO, userError, BufferMode(..) )
+--import PrelException ( ioError )
\end{code}
%*********************************************************
(x,str1) <- reads str
("","") <- lex str1
return x
-
- -- raises an exception instead of an error
-readIO :: Read a => String -> IO a
-readIO s = case (do { (x,t) <- reads s ; ("","") <- lex t ; return x }) of
-#ifndef NEW_READS_REP
- [x] -> return x
- [] -> ioError (userError "Prelude.readIO: no parse")
- _ -> ioError (userError "Prelude.readIO: ambiguous parse")
-#else
- Just x -> return x
- Nothing -> ioError (userError "Prelude.readIO: no parse")
-#endif
-
\end{code}
\begin{code}
#endif
\end{code}
-
-%*********************************************************
-%* *
-\subsection{Reading BufferMode}
-%* *
-%*********************************************************
-
-This instance decl is here rather than somewhere more appropriate in
-order that we can avoid both orphan-instance modules and recursive
-dependencies.
-
-\begin{code}
-instance Read BufferMode where
- readsPrec _ =
- readParen False
- (\r -> let lr = lex r
- in
- [(NoBuffering, rest) | ("NoBuffering", rest) <- lr] ++
- [(LineBuffering,rest) | ("LineBuffering",rest) <- lr] ++
- [(BlockBuffering mb,rest2) | ("BlockBuffering",rest1) <- lr,
- (mb, rest2) <- reads rest1])
-
-\end{code}