[project @ 2002-05-10 13:42:07 by simonmar]
[ghc-base.git] / GHC / IOBase.lhs
index 9c2c034..b2ec6e6 100644 (file)
@@ -24,7 +24,10 @@ import Data.Maybe  ( Maybe(..) )
 import GHC.Show
 import GHC.List
 import GHC.Read
+
+#ifndef __HADDOCK__
 import {-# SOURCE #-} Data.Dynamic
+#endif
 
 -- ---------------------------------------------------------------------------
 -- The IO Monad
@@ -120,6 +123,11 @@ unsafeInterleaveIO (IO m)
 -- Handle type
 
 data MVar a = MVar (MVar# RealWorld a)
+{- ^
+An 'MVar' (pronounced \"em-var\") is a synchronising variable, used
+for communication between concurrent threads.  It can be thought of
+as a a box, which may be empty or full.
+-}
 
 -- pull in Eq (Mvar a) too, to avoid GHC.Conc being an orphan-instance module
 instance Eq (MVar a) where
@@ -270,22 +278,22 @@ type FilePath = String
 -- effects. For output, items are written out from the internal
 -- buffer according to the buffer mode:
 --
--- * line-buffering  the entire output buffer is written
+-- o line-buffering  the entire output buffer is written
 --   out whenever a newline is output, the output buffer overflows, 
 --   a flush is issued, or the handle is closed.
 --
--- * block-buffering the entire output buffer is written out whenever 
+-- o block-buffering the entire output buffer is written out whenever 
 --   it overflows, a flush is issued, or the handle
 --   is closed.
 --
--- * no-buffering output is written immediately, and never stored
+-- o no-buffering output is written immediately, and never stored
 --   in the output buffer.
 --
 -- The output buffer is emptied as soon as it has been written out.
 
 -- Similarly, input occurs according to the buffer mode for handle {\em hdl}.
 
--- * line-buffering when the input buffer for the handle is not empty,
+-- o line-buffering when the input buffer for the handle is not empty,
 --   the next item is obtained from the buffer;
 --   otherwise, when the input buffer is empty,
 --   characters up to and including the next newline
@@ -293,10 +301,10 @@ type FilePath = String
 --   are available until the newline character is
 --   available.
 --
--- * block-buffering when the input buffer for the handle becomes empty,
+-- o block-buffering when the input buffer for the handle becomes empty,
 --   the next block of data is read into this buffer.
 --
--- * no-buffering the next input item is read and returned.
+-- o no-buffering the next input item is read and returned.
 
 -- For most implementations, physical files will normally be block-buffered 
 -- and terminals will normally be line-buffered. (the IO interface provides