Commit dd52974e authored by sof's avatar sof
Browse files

[project @ 1999-01-24 14:44:00 by sof]

Moved ST <--> IO coercion functions from IOExts to ST (and LazyST) docs.
parent 447a6fee
...@@ -58,12 +58,6 @@ simplified memoisation function: ...@@ -58,12 +58,6 @@ simplified memoisation function:
> return a > return a
</verb></tscreen> </verb></tscreen>
<item>
Operations for coercing an <tt/ST/ action into an <tt/IO/ one, and
vice versa are also provided. Notice that coercing an <tt/IO/ action
into an <tt/ST/ action is 'lossy', since any exception raised within the
<tt/IO/ action will not be caught within the <tt/ST/ monad, as it
doesn't support (monadic) exceptions.
</itemize> </itemize>
<tscreen><verb> <tscreen><verb>
...@@ -98,7 +92,5 @@ performGC :: IO () ...@@ -98,7 +92,5 @@ performGC :: IO ()
trace :: String -> a -> a trace :: String -> a -> a
unsafePtrEq :: a -> a -> Bool unsafePtrEq :: a -> a -> Bool
unsafeIOToST :: IO a -> ST s a
stToIO :: ST s a -> IO a
</verb></tscreen> </verb></tscreen>
...@@ -37,6 +37,9 @@ thawSTArray :: Ix ix => Array ix elt -> ST s (STArray s ix elt) ...@@ -37,6 +37,9 @@ thawSTArray :: Ix ix => Array ix elt -> ST s (STArray s ix elt)
freezeSTArray :: Ix ix => STArray s ix elt -> ST s (Array ix elt) freezeSTArray :: Ix ix => STArray s ix elt -> ST s (Array ix elt)
unsafeFreezeSTArray :: Ix ix => STArray s ix elt -> ST s (Array ix elt) unsafeFreezeSTArray :: Ix ix => STArray s ix elt -> ST s (Array ix elt)
instance Eq (STArray s ix elt) instance Eq (STArray s ix elt)
unsafeIOToST :: IO a -> ST s a
stToIO :: ST s a -> IO a
</verb></tscreen> </verb></tscreen>
Notes: Notes:
...@@ -53,12 +56,6 @@ operation <tt/unsafeFreezeSTArray/ is a faster version of ...@@ -53,12 +56,6 @@ operation <tt/unsafeFreezeSTArray/ is a faster version of
<tt/freezeSTArray/ which omits the copying step. It's a safe substitute for <tt/freezeSTArray/ which omits the copying step. It's a safe substitute for
<tt/freezeSTArray/ if you don't modify the mutable array after freezing it. <tt/freezeSTArray/ if you don't modify the mutable array after freezing it.
<item>
In the current version of Hugs, the <tt/<idx/runST// operation,
used to specify encapsulation, is implemented as a language construct,
and <tt/runST/ is treated as a keyword. We plan to change this to match
GHC soon.
<!-- <!--
<item> <item>
Note that it is possible to install Hugs 1.4 without support for lazy Note that it is possible to install Hugs 1.4 without support for lazy
...@@ -76,4 +73,10 @@ places where it matters. GHC implements LazyST and ST using different ...@@ -76,4 +73,10 @@ places where it matters. GHC implements LazyST and ST using different
types, so this isn't possible. types, so this isn't possible.
</item> </item>
<item>
Operations for coercing an <tt/ST/ action into an <tt/IO/ one, and
vice versa are also provided. Notice that coercing an <tt/IO/ action
into an <tt/ST/ action is 'lossy', since any exception raised within the
<tt/IO/ action will not be caught within the <tt/ST/ monad, as it
doesn't support (monadic) exceptions.
</itemize> </itemize>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment