Skip to content
Snippets Groups Projects
Commit 84ccb85d authored by Simon Marlow's avatar Simon Marlow
Browse files

[project @ 2000-01-30 10:11:32 by simonmar]

Add notes about where the IO representation is wired in to various
parts of the source tree, since I'm about to add some more.
parent 3427092e
No related merge requests found
% -----------------------------------------------------------------------------
% $Id: PrelIOBase.lhs,v 1.16 1999/12/03 16:17:42 simonmar Exp $
% $Id: PrelIOBase.lhs,v 1.17 2000/01/30 10:11:32 simonmar Exp $
%
% (c) The AQUA Project, Glasgow University, 1994-1998
%
......@@ -55,6 +55,23 @@ The IO Monad is just an instance of the ST monad, where the state is
the real world. We use the exception mechanism (in PrelException) to
implement IO exceptions.
NOTE: The IO representation is deeply wired in to various parts of the
system. The following list may or may not be exhaustive:
Compiler - types of various primitives in PrimOp.lhs
RTS - forceIO (StgMiscClosures.hc)
- catchzh_fast, (un)?blockAsyncExceptionszh_fast, raisezh_fast
(Exceptions.hc)
- raiseAsync (Schedule.c)
Prelude - PrelIOBase.lhs, and several other places including
PrelException.lhs.
Libraries - parts of hslibs/lang.
--SDM
\begin{code}
#ifndef __HUGS__
newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment