[project @ 1997-12-04 11:05:32 by simonm]
authorsimonm <unknown>
Thu, 4 Dec 1997 11:05:58 +0000 (11:05 +0000)
committersimonm <unknown>
Thu, 4 Dec 1997 11:05:58 +0000 (11:05 +0000)
Remove wired-in runST, instead provide a type signature using the
universal quanitification extension.

Also move runST from STBase.lhs into Unsafe.lhs so that it won't get
inlined anywhere.

ghc/compiler/basicTypes/Unique.lhs
ghc/compiler/prelude/PrelInfo.lhs
ghc/compiler/prelude/PrelVals.lhs
ghc/lib/.depend [new file with mode: 0644]
ghc/lib/ghc/ArrBase.lhs
ghc/lib/ghc/STBase.lhs
ghc/lib/ghc/Unsafe.lhs

index 030328b..34d05c4 100644 (file)
@@ -150,7 +150,6 @@ module Unique (
        returnIntAndGMPDataConKey,
        returnIntAndGMPTyConKey,
        returnMClassOpKey,
-       runSTIdKey,
        seqIdKey,
        showClassKey,
        showParenIdKey,
@@ -667,7 +666,6 @@ readParenIdKey                    = mkPreludeMiscIdUnique 28
 realWorldPrimIdKey           = mkPreludeMiscIdUnique 29
 recConErrorIdKey             = mkPreludeMiscIdUnique 30
 recUpdErrorIdKey             = mkPreludeMiscIdUnique 31
-runSTIdKey                   = mkPreludeMiscIdUnique 32
 seqIdKey                     = mkPreludeMiscIdUnique 33
 showParenIdKey               = mkPreludeMiscIdUnique 34
 showSpaceIdKey               = mkPreludeMiscIdUnique 35
index cd531f2..4a894b8 100644 (file)
@@ -221,7 +221,6 @@ wired_in_ids
     , rEC_CON_ERROR_ID
     , rEC_UPD_ERROR_ID
     , realWorldPrimId
-    , runSTId
     , tRACE_ID
     , unpackCString2Id
     , unpackCStringAppendId
index dbed539..d5ecd9c 100644 (file)
@@ -492,91 +492,6 @@ noFollowId = pcMiscPrelId noFollowIdKey cONC_BASE SLIT("noFollow")
 -}
 \end{code}
 
-%************************************************************************
-%*                                                                     *
-\subsection[PrelVals-runST]{@runST@: Magic start-state-transformer function}
-%*                                                                     *
-%************************************************************************
-
-@runST@ has a non-Haskell-able type:
-\begin{verbatim}
--- runST :: forall a. (forall s. _ST s a) -> a
--- which is to say ::
---          forall a. (forall s. (_State s -> (a, _State s))) -> a
-
-runST a m = case m _RealWorld (S# _RealWorld realWorld#) of
-              (r :: a, wild :: _State _RealWorld) -> r
-\end{verbatim}
-
-We unfold always, just for simplicity:
-\begin{code}
-runSTId
-  = pcMiscPrelId runSTIdKey sT_BASE SLIT("runST") run_ST_ty id_info
-  where
-    s_tv = betaTyVar
-    s   = betaTy
-
-    st_ty a = mkSigmaTy [s_tv] [] (mkStateTransformerTy s a)
-
-    run_ST_ty
-      = mkSigmaTy [alphaTyVar] [] (mkFunTys [st_ty alphaTy] alphaTy)
-           -- NB: rank-2 polymorphism! (forall inside the st_ty...)
-
-    id_info
-      = noIdInfo
-       `addArityInfo` exactArity 1
-       `addStrictnessInfo` mkStrictnessInfo [WwStrict] False
-       `addArgUsageInfo` mkArgUsageInfo [ArgUsage 1]
-       -- ABSOLUTELY NO UNFOLDING, e.g.: (mk_inline_unfolding run_ST_template)
-       -- see example below
-{- OUT:
-    [m, t, r, wild]
-      = mkTemplateLocals [
-       {-m-} st_ty alphaTy,
-       {-t-} realWorldStateTy,
-       {-r-} alphaTy,
-       {-_-} realWorldStateTy
-       ]
-
-    run_ST_template
-      = mkLam [alphaTyVar] [m] (
-           Let (NonRec t (Con stateDataCon [TyArg realWorldTy, VarArg realWorldPrimId])) (
-             Case (App (mkTyApp (Var m) [realWorldTy]) (VarArg t)) (
-               AlgAlts
-                 [(pairDataCon, [r, wild], Var r)]
-                 NoDefault)))
--}
-\end{code}
-
-SLPJ 95/04: Why @runST@ must not have an unfolding; consider:
-\begin{verbatim}
-f x =
-  runST ( \ s -> let
-                   (a, s')  = newArray# 100 [] s
-                   (_, s'') = fill_in_array_or_something a x s'
-                 in
-                 freezeArray# a s'' )
-\end{verbatim}
-If we inline @runST@, we'll get:
-\begin{verbatim}
-f x = let
-       (a, s')  = newArray# 100 [] realWorld#{-NB-}
-       (_, s'') = fill_in_array_or_something a x s'
-      in
-      freezeArray# a s''
-\end{verbatim}
-And now the @newArray#@ binding can be floated to become a CAF, which
-is totally and utterly wrong:
-\begin{verbatim}
-f = let
-    (a, s')  = newArray# 100 [] realWorld#{-NB-} -- YIKES!!!
-    in
-    \ x ->
-       let (_, s'') = fill_in_array_or_something a x s' in
-       freezeArray# a s''
-\end{verbatim}
-All calls to @f@ will share a {\em single} array!  End SLPJ 95/04.
-
 @realWorld#@ used to be a magic literal, \tr{void#}.  If things get
 nasty as-is, change it back to a literal (@Literal@).
 \begin{code}
diff --git a/ghc/lib/.depend b/ghc/lib/.depend
new file mode 100644 (file)
index 0000000..5869379
--- /dev/null
@@ -0,0 +1,1042 @@
+# DO NOT DELETE: Beginning of Haskell dependencies
+ghc/ArrBase.o ghc/ArrBase.mc_o ghc/ArrBase.p_o ghc/ArrBase.t_o : ghc/ArrBase.lhs
+ghc/ArrBase.o ghc/ArrBase.mc_o ghc/ArrBase.p_o ghc/ArrBase.t_o : ghc/Error.hi-boot
+ghc/ArrBase.o : required/Ix.hi
+ghc/ArrBase.mc_o : required/Ix.mc_hi
+ghc/ArrBase.p_o : required/Ix.p_hi
+ghc/ArrBase.t_o : required/Ix.t_hi
+ghc/ArrBase.o : ghc/PrelList.hi
+ghc/ArrBase.mc_o : ghc/PrelList.mc_hi
+ghc/ArrBase.p_o : ghc/PrelList.p_hi
+ghc/ArrBase.t_o : ghc/PrelList.t_hi
+ghc/ArrBase.o : ghc/STBase.hi
+ghc/ArrBase.mc_o : ghc/STBase.mc_hi
+ghc/ArrBase.p_o : ghc/STBase.p_hi
+ghc/ArrBase.t_o : ghc/STBase.t_hi
+ghc/ArrBase.o : ghc/PrelBase.hi
+ghc/ArrBase.mc_o : ghc/PrelBase.mc_hi
+ghc/ArrBase.p_o : ghc/PrelBase.p_hi
+ghc/ArrBase.t_o : ghc/PrelBase.t_hi
+ghc/ArrBase.o : glaExts/CCall.hi
+ghc/ArrBase.mc_o : glaExts/CCall.mc_hi
+ghc/ArrBase.p_o : glaExts/CCall.p_hi
+ghc/ArrBase.t_o : glaExts/CCall.t_hi
+ghc/ArrBase.o : glaExts/Addr.hi
+ghc/ArrBase.mc_o : glaExts/Addr.mc_hi
+ghc/ArrBase.p_o : glaExts/Addr.p_hi
+ghc/ArrBase.t_o : glaExts/Addr.t_hi
+ghc/ArrBase.o : ghc/Unsafe.hi
+ghc/ArrBase.mc_o : ghc/Unsafe.mc_hi
+ghc/ArrBase.p_o : ghc/Unsafe.p_hi
+ghc/ArrBase.t_o : ghc/Unsafe.t_hi
+ghc/ArrBase.o : ghc/GHC.hi
+ghc/ArrBase.mc_o : ghc/GHC.mc_hi
+ghc/ArrBase.p_o : ghc/GHC.p_hi
+ghc/ArrBase.t_o : ghc/GHC.t_hi
+ghc/ConcBase.o ghc/ConcBase.mc_o ghc/ConcBase.p_o ghc/ConcBase.t_o : ghc/ConcBase.lhs
+ghc/ConcBase.o : ghc/PrelBase.hi
+ghc/ConcBase.mc_o : ghc/PrelBase.mc_hi
+ghc/ConcBase.p_o : ghc/PrelBase.p_hi
+ghc/ConcBase.t_o : ghc/PrelBase.t_hi
+ghc/ConcBase.o : ghc/STBase.hi
+ghc/ConcBase.mc_o : ghc/STBase.mc_hi
+ghc/ConcBase.p_o : ghc/STBase.p_hi
+ghc/ConcBase.t_o : ghc/STBase.t_hi
+ghc/ConcBase.o : ghc/IOBase.hi
+ghc/ConcBase.mc_o : ghc/IOBase.mc_hi
+ghc/ConcBase.p_o : ghc/IOBase.p_hi
+ghc/ConcBase.t_o : ghc/IOBase.t_hi
+ghc/ConcBase.o : ghc/GHCerr.hi
+ghc/ConcBase.mc_o : ghc/GHCerr.mc_hi
+ghc/ConcBase.p_o : ghc/GHCerr.p_hi
+ghc/ConcBase.t_o : ghc/GHCerr.t_hi
+ghc/ConcBase.o : ghc/PrelBase.hi
+ghc/ConcBase.mc_o : ghc/PrelBase.mc_hi
+ghc/ConcBase.p_o : ghc/PrelBase.p_hi
+ghc/ConcBase.t_o : ghc/PrelBase.t_hi
+ghc/ConcBase.o : ghc/GHC.hi
+ghc/ConcBase.mc_o : ghc/GHC.mc_hi
+ghc/ConcBase.p_o : ghc/GHC.p_hi
+ghc/ConcBase.t_o : ghc/GHC.t_hi
+ghc/Error.o ghc/Error.mc_o ghc/Error.p_o ghc/Error.t_o : ghc/Error.lhs
+ghc/Error.o : ghc/PrelBase.hi
+ghc/Error.mc_o : ghc/PrelBase.mc_hi
+ghc/Error.p_o : ghc/PrelBase.p_hi
+ghc/Error.t_o : ghc/PrelBase.t_hi
+ghc/Error.o : ghc/IOBase.hi
+ghc/Error.mc_o : ghc/IOBase.mc_hi
+ghc/Error.p_o : ghc/IOBase.p_hi
+ghc/Error.t_o : ghc/IOBase.t_hi
+ghc/Error.o : glaExts/Foreign.hi
+ghc/Error.mc_o : glaExts/Foreign.mc_hi
+ghc/Error.p_o : glaExts/Foreign.p_hi
+ghc/Error.t_o : glaExts/Foreign.t_hi
+ghc/Error.o : glaExts/Addr.hi
+ghc/Error.mc_o : glaExts/Addr.mc_hi
+ghc/Error.p_o : glaExts/Addr.p_hi
+ghc/Error.t_o : glaExts/Addr.t_hi
+ghc/GHCerr.o ghc/GHCerr.mc_o ghc/GHCerr.p_o ghc/GHCerr.t_o : ghc/GHCerr.lhs
+ghc/GHCerr.o : ghc/PrelBase.hi
+ghc/GHCerr.mc_o : ghc/PrelBase.mc_hi
+ghc/GHCerr.p_o : ghc/PrelBase.p_hi
+ghc/GHCerr.t_o : ghc/PrelBase.t_hi
+ghc/GHCerr.o : ghc/PrelList.hi
+ghc/GHCerr.mc_o : ghc/PrelList.mc_hi
+ghc/GHCerr.p_o : ghc/PrelList.p_hi
+ghc/GHCerr.t_o : ghc/PrelList.t_hi
+ghc/GHCerr.o : ghc/Error.hi
+ghc/GHCerr.mc_o : ghc/Error.mc_hi
+ghc/GHCerr.p_o : ghc/Error.p_hi
+ghc/GHCerr.t_o : ghc/Error.t_hi
+ghc/GHCmain.o ghc/GHCmain.mc_o ghc/GHCmain.p_o ghc/GHCmain.t_o : ghc/GHCmain.lhs
+ghc/GHCmain.o : required/Prelude.hi
+ghc/GHCmain.mc_o : required/Prelude.mc_hi
+ghc/GHCmain.p_o : required/Prelude.p_hi
+ghc/GHCmain.t_o : required/Prelude.t_hi
+ghc/GHCmain.o ghc/GHCmain.mc_o ghc/GHCmain.p_o ghc/GHCmain.t_o : ghc/Main.hi-boot
+ghc/IOBase.o ghc/IOBase.mc_o ghc/IOBase.p_o ghc/IOBase.t_o : ghc/IOBase.lhs
+ghc/IOBase.o ghc/IOBase.mc_o ghc/IOBase.p_o ghc/IOBase.t_o : ghc/Error.hi-boot
+ghc/IOBase.o : ghc/STBase.hi
+ghc/IOBase.mc_o : ghc/STBase.mc_hi
+ghc/IOBase.p_o : ghc/STBase.p_hi
+ghc/IOBase.t_o : ghc/STBase.t_hi
+ghc/IOBase.o : ghc/PrelTup.hi
+ghc/IOBase.mc_o : ghc/PrelTup.mc_hi
+ghc/IOBase.p_o : ghc/PrelTup.p_hi
+ghc/IOBase.t_o : ghc/PrelTup.t_hi
+ghc/IOBase.o : glaExts/Addr.hi
+ghc/IOBase.mc_o : glaExts/Addr.mc_hi
+ghc/IOBase.p_o : glaExts/Addr.p_hi
+ghc/IOBase.t_o : glaExts/Addr.t_hi
+ghc/IOBase.o : ghc/PackBase.hi
+ghc/IOBase.mc_o : ghc/PackBase.mc_hi
+ghc/IOBase.p_o : ghc/PackBase.p_hi
+ghc/IOBase.t_o : ghc/PackBase.t_hi
+ghc/IOBase.o : ghc/PrelBase.hi
+ghc/IOBase.mc_o : ghc/PrelBase.mc_hi
+ghc/IOBase.p_o : ghc/PrelBase.p_hi
+ghc/IOBase.t_o : ghc/PrelBase.t_hi
+ghc/IOBase.o : ghc/ArrBase.hi
+ghc/IOBase.mc_o : ghc/ArrBase.mc_hi
+ghc/IOBase.p_o : ghc/ArrBase.p_hi
+ghc/IOBase.t_o : ghc/ArrBase.t_hi
+ghc/IOBase.o : ghc/GHC.hi
+ghc/IOBase.mc_o : ghc/GHC.mc_hi
+ghc/IOBase.p_o : ghc/GHC.p_hi
+ghc/IOBase.t_o : ghc/GHC.t_hi
+ghc/IOHandle.o ghc/IOHandle.mc_o ghc/IOHandle.p_o ghc/IOHandle.t_o : ghc/IOHandle.lhs
+ghc/IOHandle.o : glaExts/ST.hi
+ghc/IOHandle.mc_o : glaExts/ST.mc_hi
+ghc/IOHandle.p_o : glaExts/ST.p_hi
+ghc/IOHandle.t_o : glaExts/ST.t_hi
+ghc/IOHandle.o : ghc/STBase.hi
+ghc/IOHandle.mc_o : ghc/STBase.mc_hi
+ghc/IOHandle.p_o : ghc/STBase.p_hi
+ghc/IOHandle.t_o : ghc/STBase.t_hi
+ghc/IOHandle.o : ghc/ArrBase.hi
+ghc/IOHandle.mc_o : ghc/ArrBase.mc_hi
+ghc/IOHandle.p_o : ghc/ArrBase.p_hi
+ghc/IOHandle.t_o : ghc/ArrBase.t_hi
+ghc/IOHandle.o : ghc/PrelRead.hi
+ghc/IOHandle.mc_o : ghc/PrelRead.mc_hi
+ghc/IOHandle.p_o : ghc/PrelRead.p_hi
+ghc/IOHandle.t_o : ghc/PrelRead.t_hi
+ghc/IOHandle.o : ghc/PrelList.hi
+ghc/IOHandle.mc_o : ghc/PrelList.mc_hi
+ghc/IOHandle.p_o : ghc/PrelList.p_hi
+ghc/IOHandle.t_o : ghc/PrelList.t_hi
+ghc/IOHandle.o : required/Ix.hi
+ghc/IOHandle.mc_o : required/Ix.mc_hi
+ghc/IOHandle.p_o : required/Ix.p_hi
+ghc/IOHandle.t_o : required/Ix.t_hi
+ghc/IOHandle.o : ghc/IOBase.hi
+ghc/IOHandle.mc_o : ghc/IOBase.mc_hi
+ghc/IOHandle.p_o : ghc/IOBase.p_hi
+ghc/IOHandle.t_o : ghc/IOBase.t_hi
+ghc/IOHandle.o : ghc/Unsafe.hi
+ghc/IOHandle.mc_o : ghc/Unsafe.mc_hi
+ghc/IOHandle.p_o : ghc/Unsafe.p_hi
+ghc/IOHandle.t_o : ghc/Unsafe.t_hi
+ghc/IOHandle.o : ghc/PrelTup.hi
+ghc/IOHandle.mc_o : ghc/PrelTup.mc_hi
+ghc/IOHandle.p_o : ghc/PrelTup.p_hi
+ghc/IOHandle.t_o : ghc/PrelTup.t_hi
+ghc/IOHandle.o : ghc/PrelBase.hi
+ghc/IOHandle.mc_o : ghc/PrelBase.mc_hi
+ghc/IOHandle.p_o : ghc/PrelBase.p_hi
+ghc/IOHandle.t_o : ghc/PrelBase.t_hi
+ghc/IOHandle.o : ghc/GHC.hi
+ghc/IOHandle.mc_o : ghc/GHC.mc_hi
+ghc/IOHandle.p_o : ghc/GHC.p_hi
+ghc/IOHandle.t_o : ghc/GHC.t_hi
+ghc/IOHandle.o : glaExts/Addr.hi
+ghc/IOHandle.mc_o : glaExts/Addr.mc_hi
+ghc/IOHandle.p_o : glaExts/Addr.p_hi
+ghc/IOHandle.t_o : glaExts/Addr.t_hi
+ghc/IOHandle.o : ghc/Error.hi
+ghc/IOHandle.mc_o : ghc/Error.mc_hi
+ghc/IOHandle.p_o : ghc/Error.p_hi
+ghc/IOHandle.t_o : ghc/Error.t_hi
+ghc/IOHandle.o : glaExts/Foreign.hi
+ghc/IOHandle.mc_o : glaExts/Foreign.mc_hi
+ghc/IOHandle.p_o : glaExts/Foreign.p_hi
+ghc/IOHandle.t_o : glaExts/Foreign.t_hi
+ghc/PackBase.o ghc/PackBase.mc_o ghc/PackBase.p_o ghc/PackBase.t_o : ghc/PackBase.lhs
+ghc/PackBase.o : ghc/PrelBase.hi
+ghc/PackBase.mc_o : ghc/PrelBase.mc_hi
+ghc/PackBase.p_o : ghc/PrelBase.p_hi
+ghc/PackBase.t_o : ghc/PrelBase.t_hi
+ghc/PackBase.o ghc/PackBase.mc_o ghc/PackBase.p_o ghc/PackBase.t_o : ghc/Error.hi-boot
+ghc/PackBase.o : ghc/PrelList.hi
+ghc/PackBase.mc_o : ghc/PrelList.mc_hi
+ghc/PackBase.p_o : ghc/PrelList.p_hi
+ghc/PackBase.t_o : ghc/PrelList.t_hi
+ghc/PackBase.o : ghc/STBase.hi
+ghc/PackBase.mc_o : ghc/STBase.mc_hi
+ghc/PackBase.p_o : ghc/STBase.p_hi
+ghc/PackBase.t_o : ghc/STBase.t_hi
+ghc/PackBase.o : ghc/ArrBase.hi
+ghc/PackBase.mc_o : ghc/ArrBase.mc_hi
+ghc/PackBase.p_o : ghc/ArrBase.p_hi
+ghc/PackBase.t_o : ghc/ArrBase.t_hi
+ghc/PackBase.o : glaExts/Addr.hi
+ghc/PackBase.mc_o : glaExts/Addr.mc_hi
+ghc/PackBase.p_o : glaExts/Addr.p_hi
+ghc/PackBase.t_o : glaExts/Addr.t_hi
+ghc/PrelBase.o ghc/PrelBase.mc_o ghc/PrelBase.p_o ghc/PrelBase.t_o : ghc/PrelBase.lhs
+ghc/PrelBase.o ghc/PrelBase.mc_o ghc/PrelBase.p_o ghc/PrelBase.t_o : ghc/Error.hi-boot
+ghc/PrelBase.o : ghc/GHC.hi
+ghc/PrelBase.mc_o : ghc/GHC.mc_hi
+ghc/PrelBase.p_o : ghc/GHC.p_hi
+ghc/PrelBase.t_o : ghc/GHC.t_hi
+ghc/PrelIO.o ghc/PrelIO.mc_o ghc/PrelIO.p_o ghc/PrelIO.t_o : ghc/PrelIO.lhs
+ghc/PrelIO.o : required/IO.hi
+ghc/PrelIO.mc_o : required/IO.mc_hi
+ghc/PrelIO.p_o : required/IO.p_hi
+ghc/PrelIO.t_o : required/IO.t_hi
+ghc/PrelIO.o : ghc/IOHandle.hi
+ghc/PrelIO.mc_o : ghc/IOHandle.mc_hi
+ghc/PrelIO.p_o : ghc/IOHandle.p_hi
+ghc/PrelIO.t_o : ghc/IOHandle.t_hi
+ghc/PrelIO.o : ghc/IOBase.hi
+ghc/PrelIO.mc_o : ghc/IOBase.mc_hi
+ghc/PrelIO.p_o : ghc/IOBase.p_hi
+ghc/PrelIO.t_o : ghc/IOBase.t_hi
+ghc/PrelIO.o : ghc/PrelBase.hi
+ghc/PrelIO.mc_o : ghc/PrelBase.mc_hi
+ghc/PrelIO.p_o : ghc/PrelBase.p_hi
+ghc/PrelIO.t_o : ghc/PrelBase.t_hi
+ghc/PrelIO.o : ghc/PrelRead.hi
+ghc/PrelIO.mc_o : ghc/PrelRead.mc_hi
+ghc/PrelIO.p_o : ghc/PrelRead.p_hi
+ghc/PrelIO.t_o : ghc/PrelRead.t_hi
+ghc/PrelList.o ghc/PrelList.mc_o ghc/PrelList.p_o ghc/PrelList.t_o : ghc/PrelList.lhs
+ghc/PrelList.o ghc/PrelList.mc_o ghc/PrelList.p_o ghc/PrelList.t_o : ghc/Error.hi-boot
+ghc/PrelList.o : ghc/PrelTup.hi
+ghc/PrelList.mc_o : ghc/PrelTup.mc_hi
+ghc/PrelList.p_o : ghc/PrelTup.p_hi
+ghc/PrelList.t_o : ghc/PrelTup.t_hi
+ghc/PrelList.o : ghc/PrelBase.hi
+ghc/PrelList.mc_o : ghc/PrelBase.mc_hi
+ghc/PrelList.p_o : ghc/PrelBase.p_hi
+ghc/PrelList.t_o : ghc/PrelBase.t_hi
+ghc/PrelNum.o ghc/PrelNum.mc_o ghc/PrelNum.p_o ghc/PrelNum.t_o : ghc/PrelNum.lhs
+ghc/PrelNum.o : ghc/PrelBase.hi
+ghc/PrelNum.mc_o : ghc/PrelBase.mc_hi
+ghc/PrelNum.p_o : ghc/PrelBase.p_hi
+ghc/PrelNum.t_o : ghc/PrelBase.t_hi
+ghc/PrelNum.o : ghc/GHC.hi
+ghc/PrelNum.mc_o : ghc/GHC.mc_hi
+ghc/PrelNum.p_o : ghc/GHC.p_hi
+ghc/PrelNum.t_o : ghc/GHC.t_hi
+ghc/PrelNum.o ghc/PrelNum.mc_o ghc/PrelNum.p_o ghc/PrelNum.t_o : ghc/Error.hi-boot
+ghc/PrelNum.o : ghc/PrelList.hi
+ghc/PrelNum.mc_o : ghc/PrelList.mc_hi
+ghc/PrelNum.p_o : ghc/PrelList.p_hi
+ghc/PrelNum.t_o : ghc/PrelList.t_hi
+ghc/PrelNum.o : ghc/ArrBase.hi
+ghc/PrelNum.mc_o : ghc/ArrBase.mc_hi
+ghc/PrelNum.p_o : ghc/ArrBase.p_hi
+ghc/PrelNum.t_o : ghc/ArrBase.t_hi
+ghc/PrelNum.o : ghc/Unsafe.hi
+ghc/PrelNum.mc_o : ghc/Unsafe.mc_hi
+ghc/PrelNum.p_o : ghc/Unsafe.p_hi
+ghc/PrelNum.t_o : ghc/Unsafe.t_hi
+ghc/PrelNum.o : required/Ix.hi
+ghc/PrelNum.mc_o : required/Ix.mc_hi
+ghc/PrelNum.p_o : required/Ix.p_hi
+ghc/PrelNum.t_o : required/Ix.t_hi
+ghc/PrelNum.o : glaExts/CCall.hi
+ghc/PrelNum.mc_o : glaExts/CCall.mc_hi
+ghc/PrelNum.p_o : glaExts/CCall.p_hi
+ghc/PrelNum.t_o : glaExts/CCall.t_hi
+ghc/PrelRead.o ghc/PrelRead.mc_o ghc/PrelRead.p_o ghc/PrelRead.t_o : ghc/PrelRead.lhs
+ghc/PrelRead.o ghc/PrelRead.mc_o ghc/PrelRead.p_o ghc/PrelRead.t_o : ghc/Error.hi-boot
+ghc/PrelRead.o : ghc/PrelNum.hi
+ghc/PrelRead.mc_o : ghc/PrelNum.mc_hi
+ghc/PrelRead.p_o : ghc/PrelNum.p_hi
+ghc/PrelRead.t_o : ghc/PrelNum.t_hi
+ghc/PrelRead.o : ghc/PrelList.hi
+ghc/PrelRead.mc_o : ghc/PrelList.mc_hi
+ghc/PrelRead.p_o : ghc/PrelList.p_hi
+ghc/PrelRead.t_o : ghc/PrelList.t_hi
+ghc/PrelRead.o : ghc/PrelTup.hi
+ghc/PrelRead.mc_o : ghc/PrelTup.mc_hi
+ghc/PrelRead.p_o : ghc/PrelTup.p_hi
+ghc/PrelRead.t_o : ghc/PrelTup.t_hi
+ghc/PrelRead.o : ghc/PrelBase.hi
+ghc/PrelRead.mc_o : ghc/PrelBase.mc_hi
+ghc/PrelRead.p_o : ghc/PrelBase.p_hi
+ghc/PrelRead.t_o : ghc/PrelBase.t_hi
+ghc/PrelTup.o ghc/PrelTup.mc_o ghc/PrelTup.p_o ghc/PrelTup.t_o : ghc/PrelTup.lhs
+ghc/PrelTup.o ghc/PrelTup.mc_o ghc/PrelTup.p_o ghc/PrelTup.t_o : ghc/Error.hi-boot
+ghc/PrelTup.o : ghc/PrelBase.hi
+ghc/PrelTup.mc_o : ghc/PrelBase.mc_hi
+ghc/PrelTup.p_o : ghc/PrelBase.p_hi
+ghc/PrelTup.t_o : ghc/PrelBase.t_hi
+ghc/STBase.o ghc/STBase.mc_o ghc/STBase.p_o ghc/STBase.t_o : ghc/STBase.lhs
+ghc/STBase.o : required/Monad.hi
+ghc/STBase.mc_o : required/Monad.mc_hi
+ghc/STBase.p_o : required/Monad.p_hi
+ghc/STBase.t_o : required/Monad.t_hi
+ghc/STBase.o : ghc/PrelBase.hi
+ghc/STBase.mc_o : ghc/PrelBase.mc_hi
+ghc/STBase.p_o : ghc/PrelBase.p_hi
+ghc/STBase.t_o : ghc/PrelBase.t_hi
+ghc/STBase.o : ghc/GHC.hi
+ghc/STBase.mc_o : ghc/GHC.mc_hi
+ghc/STBase.p_o : ghc/GHC.p_hi
+ghc/STBase.t_o : ghc/GHC.t_hi
+ghc/Unsafe.o ghc/Unsafe.mc_o ghc/Unsafe.p_o ghc/Unsafe.t_o : ghc/Unsafe.lhs
+ghc/Unsafe.o : ghc/PrelBase.hi
+ghc/Unsafe.mc_o : ghc/PrelBase.mc_hi
+ghc/Unsafe.p_o : ghc/PrelBase.p_hi
+ghc/Unsafe.t_o : ghc/PrelBase.t_hi
+ghc/Unsafe.o : ghc/IOBase.hi
+ghc/Unsafe.mc_o : ghc/IOBase.mc_hi
+ghc/Unsafe.p_o : ghc/IOBase.p_hi
+ghc/Unsafe.t_o : ghc/IOBase.t_hi
+ghc/Unsafe.o : ghc/STBase.hi
+ghc/Unsafe.mc_o : ghc/STBase.mc_hi
+ghc/Unsafe.p_o : ghc/STBase.p_hi
+ghc/Unsafe.t_o : ghc/STBase.t_hi
+ghc/Unsafe.o : glaExts/Addr.hi
+ghc/Unsafe.mc_o : glaExts/Addr.mc_hi
+ghc/Unsafe.p_o : glaExts/Addr.p_hi
+ghc/Unsafe.t_o : glaExts/Addr.t_hi
+ghc/Unsafe.o ghc/Unsafe.mc_o ghc/Unsafe.p_o ghc/Unsafe.t_o : ghc/Error.hi-boot
+required/Array.o required/Array.mc_o required/Array.p_o required/Array.t_o : required/Array.lhs
+required/Array.o : required/Ix.hi
+required/Array.mc_o : required/Ix.mc_hi
+required/Array.p_o : required/Ix.p_hi
+required/Array.t_o : required/Ix.t_hi
+required/Array.o : ghc/PrelList.hi
+required/Array.mc_o : ghc/PrelList.mc_hi
+required/Array.p_o : ghc/PrelList.p_hi
+required/Array.t_o : ghc/PrelList.t_hi
+required/Array.o : ghc/PrelRead.hi
+required/Array.mc_o : ghc/PrelRead.mc_hi
+required/Array.p_o : ghc/PrelRead.p_hi
+required/Array.t_o : ghc/PrelRead.t_hi
+required/Array.o : ghc/ArrBase.hi
+required/Array.mc_o : ghc/ArrBase.mc_hi
+required/Array.p_o : ghc/ArrBase.p_hi
+required/Array.t_o : ghc/ArrBase.t_hi
+required/Array.o : ghc/PrelBase.hi
+required/Array.mc_o : ghc/PrelBase.mc_hi
+required/Array.p_o : ghc/PrelBase.p_hi
+required/Array.t_o : ghc/PrelBase.t_hi
+required/CPUTime.o required/CPUTime.mc_o required/CPUTime.p_o required/CPUTime.t_o : required/CPUTime.lhs
+required/CPUTime.o : ghc/PrelBase.hi
+required/CPUTime.mc_o : ghc/PrelBase.mc_hi
+required/CPUTime.p_o : ghc/PrelBase.p_hi
+required/CPUTime.t_o : ghc/PrelBase.t_hi
+required/CPUTime.o : ghc/ArrBase.hi
+required/CPUTime.mc_o : ghc/ArrBase.mc_hi
+required/CPUTime.p_o : ghc/ArrBase.p_hi
+required/CPUTime.t_o : ghc/ArrBase.t_hi
+required/CPUTime.o : glaExts/Addr.hi
+required/CPUTime.mc_o : glaExts/Addr.mc_hi
+required/CPUTime.p_o : glaExts/Addr.p_hi
+required/CPUTime.t_o : glaExts/Addr.t_hi
+required/CPUTime.o : ghc/IOBase.hi
+required/CPUTime.mc_o : ghc/IOBase.mc_hi
+required/CPUTime.p_o : ghc/IOBase.p_hi
+required/CPUTime.t_o : ghc/IOBase.t_hi
+required/CPUTime.o : required/IO.hi
+required/CPUTime.mc_o : required/IO.mc_hi
+required/CPUTime.p_o : required/IO.p_hi
+required/CPUTime.t_o : required/IO.t_hi
+required/CPUTime.o : ghc/Unsafe.hi
+required/CPUTime.mc_o : ghc/Unsafe.mc_hi
+required/CPUTime.p_o : ghc/Unsafe.p_hi
+required/CPUTime.t_o : ghc/Unsafe.t_hi
+required/CPUTime.o : ghc/STBase.hi
+required/CPUTime.mc_o : ghc/STBase.mc_hi
+required/CPUTime.p_o : ghc/STBase.p_hi
+required/CPUTime.t_o : ghc/STBase.t_hi
+required/CPUTime.o : required/Ratio.hi
+required/CPUTime.mc_o : required/Ratio.mc_hi
+required/CPUTime.p_o : required/Ratio.p_hi
+required/CPUTime.t_o : required/Ratio.t_hi
+required/Char.o required/Char.mc_o required/Char.p_o required/Char.t_o : required/Char.lhs
+required/Char.o : ghc/PrelBase.hi
+required/Char.mc_o : ghc/PrelBase.mc_hi
+required/Char.p_o : ghc/PrelBase.p_hi
+required/Char.t_o : ghc/PrelBase.t_hi
+required/Char.o : ghc/PrelRead.hi
+required/Char.mc_o : ghc/PrelRead.mc_hi
+required/Char.p_o : ghc/PrelRead.p_hi
+required/Char.t_o : ghc/PrelRead.t_hi
+required/Char.o : ghc/Error.hi
+required/Char.mc_o : ghc/Error.mc_hi
+required/Char.p_o : ghc/Error.p_hi
+required/Char.t_o : ghc/Error.t_hi
+required/Complex.o required/Complex.mc_o required/Complex.p_o required/Complex.t_o : required/Complex.lhs
+required/Complex.o : required/Prelude.hi
+required/Complex.mc_o : required/Prelude.mc_hi
+required/Complex.p_o : required/Prelude.p_hi
+required/Complex.t_o : required/Prelude.t_hi
+required/Directory.o required/Directory.mc_o required/Directory.p_o required/Directory.t_o : required/Directory.lhs
+required/Directory.o : ghc/PrelBase.hi
+required/Directory.mc_o : ghc/PrelBase.mc_hi
+required/Directory.p_o : ghc/PrelBase.p_hi
+required/Directory.t_o : ghc/PrelBase.t_hi
+required/Directory.o : glaExts/Foreign.hi
+required/Directory.mc_o : glaExts/Foreign.mc_hi
+required/Directory.p_o : glaExts/Foreign.p_hi
+required/Directory.t_o : glaExts/Foreign.t_hi
+required/Directory.o : glaExts/Addr.hi
+required/Directory.mc_o : glaExts/Addr.mc_hi
+required/Directory.p_o : glaExts/Addr.p_hi
+required/Directory.t_o : glaExts/Addr.t_hi
+required/Directory.o : ghc/IOBase.hi
+required/Directory.mc_o : ghc/IOBase.mc_hi
+required/Directory.p_o : ghc/IOBase.p_hi
+required/Directory.t_o : ghc/IOBase.t_hi
+required/Directory.o : ghc/STBase.hi
+required/Directory.mc_o : ghc/STBase.mc_hi
+required/Directory.p_o : ghc/STBase.p_hi
+required/Directory.t_o : ghc/STBase.t_hi
+required/Directory.o : ghc/Unsafe.hi
+required/Directory.mc_o : ghc/Unsafe.mc_hi
+required/Directory.p_o : ghc/Unsafe.p_hi
+required/Directory.t_o : ghc/Unsafe.t_hi
+required/Directory.o : ghc/ArrBase.hi
+required/Directory.mc_o : ghc/ArrBase.mc_hi
+required/Directory.p_o : ghc/ArrBase.p_hi
+required/Directory.t_o : ghc/ArrBase.t_hi
+required/Directory.o : ghc/PackBase.hi
+required/Directory.mc_o : ghc/PackBase.mc_hi
+required/Directory.p_o : ghc/PackBase.p_hi
+required/Directory.t_o : ghc/PackBase.t_hi
+required/Directory.o : required/Time.hi
+required/Directory.mc_o : required/Time.mc_hi
+required/Directory.p_o : required/Time.p_hi
+required/Directory.t_o : required/Time.t_hi
+required/IO.o required/IO.mc_o required/IO.p_o required/IO.t_o : required/IO.lhs
+required/IO.o : required/Ix.hi
+required/IO.mc_o : required/Ix.mc_hi
+required/IO.p_o : required/Ix.p_hi
+required/IO.t_o : required/Ix.t_hi
+required/IO.o : ghc/STBase.hi
+required/IO.mc_o : ghc/STBase.mc_hi
+required/IO.p_o : ghc/STBase.p_hi
+required/IO.t_o : ghc/STBase.t_hi
+required/IO.o : ghc/Unsafe.hi
+required/IO.mc_o : ghc/Unsafe.mc_hi
+required/IO.p_o : ghc/Unsafe.p_hi
+required/IO.t_o : ghc/Unsafe.t_hi
+required/IO.o : ghc/IOBase.hi
+required/IO.mc_o : ghc/IOBase.mc_hi
+required/IO.p_o : ghc/IOBase.p_hi
+required/IO.t_o : ghc/IOBase.t_hi
+required/IO.o : ghc/ArrBase.hi
+required/IO.mc_o : ghc/ArrBase.mc_hi
+required/IO.p_o : ghc/ArrBase.p_hi
+required/IO.t_o : ghc/ArrBase.t_hi
+required/IO.o : ghc/IOHandle.hi
+required/IO.mc_o : ghc/IOHandle.mc_hi
+required/IO.p_o : ghc/IOHandle.p_hi
+required/IO.t_o : ghc/IOHandle.t_hi
+required/IO.o : ghc/PackBase.hi
+required/IO.mc_o : ghc/PackBase.mc_hi
+required/IO.p_o : ghc/PackBase.p_hi
+required/IO.t_o : ghc/PackBase.t_hi
+required/IO.o : ghc/PrelBase.hi
+required/IO.mc_o : ghc/PrelBase.mc_hi
+required/IO.p_o : ghc/PrelBase.p_hi
+required/IO.t_o : ghc/PrelBase.t_hi
+required/IO.o : ghc/GHC.hi
+required/IO.mc_o : ghc/GHC.mc_hi
+required/IO.p_o : ghc/GHC.p_hi
+required/IO.t_o : ghc/GHC.t_hi
+required/IO.o : glaExts/Addr.hi
+required/IO.mc_o : glaExts/Addr.mc_hi
+required/IO.p_o : glaExts/Addr.p_hi
+required/IO.t_o : glaExts/Addr.t_hi
+required/IO.o : glaExts/Foreign.hi
+required/IO.mc_o : glaExts/Foreign.mc_hi
+required/IO.p_o : glaExts/Foreign.p_hi
+required/IO.t_o : glaExts/Foreign.t_hi
+required/IO.o : required/Char.hi
+required/IO.mc_o : required/Char.mc_hi
+required/IO.p_o : required/Char.p_hi
+required/IO.t_o : required/Char.t_hi
+required/Ix.o required/Ix.mc_o required/Ix.p_o required/Ix.t_o : required/Ix.lhs
+required/Ix.o required/Ix.mc_o required/Ix.p_o required/Ix.t_o : ghc/Error.hi-boot
+required/Ix.o : ghc/PrelTup.hi
+required/Ix.mc_o : ghc/PrelTup.mc_hi
+required/Ix.p_o : ghc/PrelTup.p_hi
+required/Ix.t_o : ghc/PrelTup.t_hi
+required/Ix.o : ghc/PrelBase.hi
+required/Ix.mc_o : ghc/PrelBase.mc_hi
+required/Ix.p_o : ghc/PrelBase.p_hi
+required/Ix.t_o : ghc/PrelBase.t_hi
+required/List.o required/List.mc_o required/List.p_o required/List.t_o : required/List.lhs
+required/List.o : required/Prelude.hi
+required/List.mc_o : required/Prelude.mc_hi
+required/List.p_o : required/Prelude.p_hi
+required/List.t_o : required/Prelude.t_hi
+required/List.o : required/Maybe.hi
+required/List.mc_o : required/Maybe.mc_hi
+required/List.p_o : required/Maybe.p_hi
+required/List.t_o : required/Maybe.t_hi
+required/Locale.o required/Locale.mc_o required/Locale.p_o required/Locale.t_o : required/Locale.lhs
+required/Maybe.o required/Maybe.mc_o required/Maybe.p_o required/Maybe.t_o : required/Maybe.lhs
+required/Maybe.o : ghc/Error.hi
+required/Maybe.mc_o : ghc/Error.mc_hi
+required/Maybe.p_o : ghc/Error.p_hi
+required/Maybe.t_o : ghc/Error.t_hi
+required/Maybe.o : required/Monad.hi
+required/Maybe.mc_o : required/Monad.mc_hi
+required/Maybe.p_o : required/Monad.p_hi
+required/Maybe.t_o : required/Monad.t_hi
+required/Maybe.o : ghc/PrelList.hi
+required/Maybe.mc_o : ghc/PrelList.mc_hi
+required/Maybe.p_o : ghc/PrelList.p_hi
+required/Maybe.t_o : ghc/PrelList.t_hi
+required/Maybe.o : ghc/PrelBase.hi
+required/Maybe.mc_o : ghc/PrelBase.mc_hi
+required/Maybe.p_o : ghc/PrelBase.p_hi
+required/Maybe.t_o : ghc/PrelBase.t_hi
+required/Monad.o required/Monad.mc_o required/Monad.p_o required/Monad.t_o : required/Monad.lhs
+required/Monad.o : ghc/PrelList.hi
+required/Monad.mc_o : ghc/PrelList.mc_hi
+required/Monad.p_o : ghc/PrelList.p_hi
+required/Monad.t_o : ghc/PrelList.t_hi
+required/Monad.o : ghc/PrelTup.hi
+required/Monad.mc_o : ghc/PrelTup.mc_hi
+required/Monad.p_o : ghc/PrelTup.p_hi
+required/Monad.t_o : ghc/PrelTup.t_hi
+required/Monad.o : ghc/PrelBase.hi
+required/Monad.mc_o : ghc/PrelBase.mc_hi
+required/Monad.p_o : ghc/PrelBase.p_hi
+required/Monad.t_o : ghc/PrelBase.t_hi
+required/Numeric.o required/Numeric.mc_o required/Numeric.p_o required/Numeric.t_o : required/Numeric.lhs
+required/Numeric.o : ghc/PrelBase.hi
+required/Numeric.mc_o : ghc/PrelBase.mc_hi
+required/Numeric.p_o : ghc/PrelBase.p_hi
+required/Numeric.t_o : ghc/PrelBase.t_hi
+required/Numeric.o : ghc/ArrBase.hi
+required/Numeric.mc_o : ghc/ArrBase.mc_hi
+required/Numeric.p_o : ghc/ArrBase.p_hi
+required/Numeric.t_o : ghc/ArrBase.t_hi
+required/Numeric.o : ghc/PrelNum.hi
+required/Numeric.mc_o : ghc/PrelNum.mc_hi
+required/Numeric.p_o : ghc/PrelNum.p_hi
+required/Numeric.t_o : ghc/PrelNum.t_hi
+required/Numeric.o : ghc/PrelRead.hi
+required/Numeric.mc_o : ghc/PrelRead.mc_hi
+required/Numeric.p_o : ghc/PrelRead.p_hi
+required/Numeric.t_o : ghc/PrelRead.t_hi
+required/Prelude.o required/Prelude.mc_o required/Prelude.p_o required/Prelude.t_o : required/Prelude.lhs
+required/Prelude.o : ghc/PrelBase.hi
+required/Prelude.mc_o : ghc/PrelBase.mc_hi
+required/Prelude.p_o : ghc/PrelBase.p_hi
+required/Prelude.t_o : ghc/PrelBase.t_hi
+required/Prelude.o : ghc/PrelList.hi
+required/Prelude.mc_o : ghc/PrelList.mc_hi
+required/Prelude.p_o : ghc/PrelList.p_hi
+required/Prelude.t_o : ghc/PrelList.t_hi
+required/Prelude.o : ghc/PrelIO.hi
+required/Prelude.mc_o : ghc/PrelIO.mc_hi
+required/Prelude.p_o : ghc/PrelIO.p_hi
+required/Prelude.t_o : ghc/PrelIO.t_hi
+required/Prelude.o : ghc/PrelRead.hi
+required/Prelude.mc_o : ghc/PrelRead.mc_hi
+required/Prelude.p_o : ghc/PrelRead.p_hi
+required/Prelude.t_o : ghc/PrelRead.t_hi
+required/Prelude.o : ghc/PrelNum.hi
+required/Prelude.mc_o : ghc/PrelNum.mc_hi
+required/Prelude.p_o : ghc/PrelNum.p_hi
+required/Prelude.t_o : ghc/PrelNum.t_hi
+required/Prelude.o : ghc/PrelTup.hi
+required/Prelude.mc_o : ghc/PrelTup.mc_hi
+required/Prelude.p_o : ghc/PrelTup.p_hi
+required/Prelude.t_o : ghc/PrelTup.t_hi
+required/Prelude.o : required/Monad.hi
+required/Prelude.mc_o : required/Monad.mc_hi
+required/Prelude.p_o : required/Monad.p_hi
+required/Prelude.t_o : required/Monad.t_hi
+required/Prelude.o : required/Maybe.hi
+required/Prelude.mc_o : required/Maybe.mc_hi
+required/Prelude.p_o : required/Maybe.p_hi
+required/Prelude.t_o : required/Maybe.t_hi
+required/Prelude.o : ghc/Error.hi
+required/Prelude.mc_o : ghc/Error.mc_hi
+required/Prelude.p_o : ghc/Error.p_hi
+required/Prelude.t_o : ghc/Error.t_hi
+required/Prelude.o : ghc/GHCerr.hi
+required/Prelude.mc_o : ghc/GHCerr.mc_hi
+required/Prelude.p_o : ghc/GHCerr.p_hi
+required/Prelude.t_o : ghc/GHCerr.t_hi
+required/Random.o required/Random.mc_o required/Random.p_o required/Random.t_o : required/Random.lhs
+required/Random.o : required/CPUTime.hi
+required/Random.mc_o : required/CPUTime.mc_hi
+required/Random.p_o : required/CPUTime.p_hi
+required/Random.t_o : required/CPUTime.t_hi
+required/Random.o : required/Time.hi
+required/Random.mc_o : required/Time.mc_hi
+required/Random.p_o : required/Time.p_hi
+required/Random.t_o : required/Time.t_hi
+required/Ratio.o required/Ratio.mc_o required/Ratio.p_o required/Ratio.t_o : required/Ratio.lhs
+required/Ratio.o : ghc/PrelNum.hi
+required/Ratio.mc_o : ghc/PrelNum.mc_hi
+required/Ratio.p_o : ghc/PrelNum.p_hi
+required/Ratio.t_o : ghc/PrelNum.t_hi
+required/System.o required/System.mc_o required/System.p_o required/System.t_o : required/System.lhs
+required/System.o : required/Prelude.hi
+required/System.mc_o : required/Prelude.mc_hi
+required/System.p_o : required/Prelude.p_hi
+required/System.t_o : required/Prelude.t_hi
+required/System.o : glaExts/Addr.hi
+required/System.mc_o : glaExts/Addr.mc_hi
+required/System.p_o : glaExts/Addr.p_hi
+required/System.t_o : glaExts/Addr.t_hi
+required/System.o : ghc/IOBase.hi
+required/System.mc_o : ghc/IOBase.mc_hi
+required/System.p_o : ghc/IOBase.p_hi
+required/System.t_o : ghc/IOBase.t_hi
+required/System.o : ghc/ArrBase.hi
+required/System.mc_o : ghc/ArrBase.mc_hi
+required/System.p_o : ghc/ArrBase.p_hi
+required/System.t_o : ghc/ArrBase.t_hi
+required/System.o : ghc/PackBase.hi
+required/System.mc_o : ghc/PackBase.mc_hi
+required/System.p_o : ghc/PackBase.p_hi
+required/System.t_o : ghc/PackBase.t_hi
+required/Time.o required/Time.mc_o required/Time.p_o required/Time.t_o : required/Time.lhs
+required/Time.o : ghc/PrelBase.hi
+required/Time.mc_o : ghc/PrelBase.mc_hi
+required/Time.p_o : ghc/PrelBase.p_hi
+required/Time.t_o : ghc/PrelBase.t_hi
+required/Time.o : glaExts/ST.hi
+required/Time.mc_o : glaExts/ST.mc_hi
+required/Time.p_o : glaExts/ST.p_hi
+required/Time.t_o : glaExts/ST.t_hi
+required/Time.o : ghc/IOBase.hi
+required/Time.mc_o : ghc/IOBase.mc_hi
+required/Time.p_o : ghc/IOBase.p_hi
+required/Time.t_o : ghc/IOBase.t_hi
+required/Time.o : ghc/ArrBase.hi
+required/Time.mc_o : ghc/ArrBase.mc_hi
+required/Time.p_o : ghc/ArrBase.p_hi
+required/Time.t_o : ghc/ArrBase.t_hi
+required/Time.o : ghc/STBase.hi
+required/Time.mc_o : ghc/STBase.mc_hi
+required/Time.p_o : ghc/STBase.p_hi
+required/Time.t_o : ghc/STBase.t_hi
+required/Time.o : ghc/Unsafe.hi
+required/Time.mc_o : ghc/Unsafe.mc_hi
+required/Time.p_o : ghc/Unsafe.p_hi
+required/Time.t_o : ghc/Unsafe.t_hi
+required/Time.o : glaExts/ST.hi
+required/Time.mc_o : glaExts/ST.mc_hi
+required/Time.p_o : glaExts/ST.p_hi
+required/Time.t_o : glaExts/ST.t_hi
+required/Time.o : required/Ix.hi
+required/Time.mc_o : required/Ix.mc_hi
+required/Time.p_o : required/Ix.p_hi
+required/Time.t_o : required/Ix.t_hi
+required/Time.o : glaExts/Addr.hi
+required/Time.mc_o : glaExts/Addr.mc_hi
+required/Time.p_o : glaExts/Addr.p_hi
+required/Time.t_o : glaExts/Addr.t_hi
+required/Time.o : required/Char.hi
+required/Time.mc_o : required/Char.mc_hi
+required/Time.p_o : required/Char.p_hi
+required/Time.t_o : required/Char.t_hi
+required/Time.o : ghc/PackBase.hi
+required/Time.mc_o : ghc/PackBase.mc_hi
+required/Time.p_o : ghc/PackBase.p_hi
+required/Time.t_o : ghc/PackBase.t_hi
+required/Time.o : required/Locale.hi
+required/Time.mc_o : required/Locale.mc_hi
+required/Time.p_o : required/Locale.p_hi
+required/Time.t_o : required/Locale.t_hi
+glaExts/Addr.o glaExts/Addr.mc_o glaExts/Addr.p_o glaExts/Addr.t_o : glaExts/Addr.lhs
+glaExts/Addr.o : ghc/GHC.hi
+glaExts/Addr.mc_o : ghc/GHC.mc_hi
+glaExts/Addr.p_o : ghc/GHC.p_hi
+glaExts/Addr.t_o : ghc/GHC.t_hi
+glaExts/Addr.o : ghc/PrelBase.hi
+glaExts/Addr.mc_o : ghc/PrelBase.mc_hi
+glaExts/Addr.p_o : ghc/PrelBase.p_hi
+glaExts/Addr.t_o : ghc/PrelBase.t_hi
+glaExts/Addr.o : ghc/STBase.hi
+glaExts/Addr.mc_o : ghc/STBase.mc_hi
+glaExts/Addr.p_o : ghc/STBase.p_hi
+glaExts/Addr.t_o : ghc/STBase.t_hi
+glaExts/Addr.o : glaExts/CCall.hi
+glaExts/Addr.mc_o : glaExts/CCall.mc_hi
+glaExts/Addr.p_o : glaExts/CCall.p_hi
+glaExts/Addr.t_o : glaExts/CCall.t_hi
+glaExts/Bits.o glaExts/Bits.mc_o glaExts/Bits.p_o glaExts/Bits.t_o : glaExts/Bits.lhs
+glaExts/Bits.o : ghc/PrelBase.hi
+glaExts/Bits.mc_o : ghc/PrelBase.mc_hi
+glaExts/Bits.p_o : ghc/PrelBase.p_hi
+glaExts/Bits.t_o : ghc/PrelBase.t_hi
+glaExts/ByteArray.o glaExts/ByteArray.mc_o glaExts/ByteArray.p_o glaExts/ByteArray.t_o : glaExts/ByteArray.lhs
+glaExts/ByteArray.o : ghc/ArrBase.hi
+glaExts/ByteArray.mc_o : ghc/ArrBase.mc_hi
+glaExts/ByteArray.p_o : ghc/ArrBase.p_hi
+glaExts/ByteArray.t_o : ghc/ArrBase.t_hi
+glaExts/ByteArray.o : required/Ix.hi
+glaExts/ByteArray.mc_o : required/Ix.mc_hi
+glaExts/ByteArray.p_o : required/Ix.p_hi
+glaExts/ByteArray.t_o : required/Ix.t_hi
+glaExts/ByteArray.o : glaExts/Foreign.hi
+glaExts/ByteArray.mc_o : glaExts/Foreign.mc_hi
+glaExts/ByteArray.p_o : glaExts/Foreign.p_hi
+glaExts/ByteArray.t_o : glaExts/Foreign.t_hi
+glaExts/ByteArray.o : glaExts/Addr.hi
+glaExts/ByteArray.mc_o : glaExts/Addr.mc_hi
+glaExts/ByteArray.p_o : glaExts/Addr.p_hi
+glaExts/ByteArray.t_o : glaExts/Addr.t_hi
+glaExts/CCall.o glaExts/CCall.mc_o glaExts/CCall.p_o glaExts/CCall.t_o : glaExts/CCall.lhs
+glaExts/CCall.o : ghc/PrelBase.hi
+glaExts/CCall.mc_o : ghc/PrelBase.mc_hi
+glaExts/CCall.p_o : ghc/PrelBase.p_hi
+glaExts/CCall.t_o : ghc/PrelBase.t_hi
+glaExts/CCall.o : ghc/GHC.hi
+glaExts/CCall.mc_o : ghc/GHC.mc_hi
+glaExts/CCall.p_o : ghc/GHC.p_hi
+glaExts/CCall.t_o : ghc/GHC.t_hi
+glaExts/Foreign.o glaExts/Foreign.mc_o glaExts/Foreign.p_o glaExts/Foreign.t_o : glaExts/Foreign.lhs
+glaExts/Foreign.o : ghc/IOBase.hi
+glaExts/Foreign.mc_o : ghc/IOBase.mc_hi
+glaExts/Foreign.p_o : ghc/IOBase.p_hi
+glaExts/Foreign.t_o : ghc/IOBase.t_hi
+glaExts/Foreign.o : ghc/STBase.hi
+glaExts/Foreign.mc_o : ghc/STBase.mc_hi
+glaExts/Foreign.p_o : ghc/STBase.p_hi
+glaExts/Foreign.t_o : ghc/STBase.t_hi
+glaExts/Foreign.o : ghc/Unsafe.hi
+glaExts/Foreign.mc_o : ghc/Unsafe.mc_hi
+glaExts/Foreign.p_o : ghc/Unsafe.p_hi
+glaExts/Foreign.t_o : ghc/Unsafe.t_hi
+glaExts/Foreign.o : ghc/PrelBase.hi
+glaExts/Foreign.mc_o : ghc/PrelBase.mc_hi
+glaExts/Foreign.p_o : ghc/PrelBase.p_hi
+glaExts/Foreign.t_o : ghc/PrelBase.t_hi
+glaExts/Foreign.o : glaExts/CCall.hi
+glaExts/Foreign.mc_o : glaExts/CCall.mc_hi
+glaExts/Foreign.p_o : glaExts/CCall.p_hi
+glaExts/Foreign.t_o : glaExts/CCall.t_hi
+glaExts/Foreign.o : glaExts/Addr.hi
+glaExts/Foreign.mc_o : glaExts/Addr.mc_hi
+glaExts/Foreign.p_o : glaExts/Addr.p_hi
+glaExts/Foreign.t_o : glaExts/Addr.t_hi
+glaExts/Foreign.o : ghc/GHC.hi
+glaExts/Foreign.mc_o : ghc/GHC.mc_hi
+glaExts/Foreign.p_o : ghc/GHC.p_hi
+glaExts/Foreign.t_o : ghc/GHC.t_hi
+glaExts/GlaExts.o glaExts/GlaExts.mc_o glaExts/GlaExts.p_o glaExts/GlaExts.t_o : glaExts/GlaExts.lhs
+glaExts/GlaExts.o : ghc/GHC.hi
+glaExts/GlaExts.mc_o : ghc/GHC.mc_hi
+glaExts/GlaExts.p_o : ghc/GHC.p_hi
+glaExts/GlaExts.t_o : ghc/GHC.t_hi
+glaExts/GlaExts.o : ghc/STBase.hi
+glaExts/GlaExts.mc_o : ghc/STBase.mc_hi
+glaExts/GlaExts.p_o : ghc/STBase.p_hi
+glaExts/GlaExts.t_o : ghc/STBase.t_hi
+glaExts/GlaExts.o : glaExts/IOExts.hi
+glaExts/GlaExts.mc_o : glaExts/IOExts.mc_hi
+glaExts/GlaExts.p_o : glaExts/IOExts.p_hi
+glaExts/GlaExts.t_o : glaExts/IOExts.t_hi
+glaExts/GlaExts.o : ghc/PrelBase.hi
+glaExts/GlaExts.mc_o : ghc/PrelBase.mc_hi
+glaExts/GlaExts.p_o : ghc/PrelBase.p_hi
+glaExts/GlaExts.t_o : ghc/PrelBase.t_hi
+glaExts/GlaExts.o : glaExts/ByteArray.hi
+glaExts/GlaExts.mc_o : glaExts/ByteArray.mc_hi
+glaExts/GlaExts.p_o : glaExts/ByteArray.p_hi
+glaExts/GlaExts.t_o : glaExts/ByteArray.t_hi
+glaExts/GlaExts.o : glaExts/MutableArray.hi
+glaExts/GlaExts.mc_o : glaExts/MutableArray.mc_hi
+glaExts/GlaExts.p_o : glaExts/MutableArray.p_hi
+glaExts/GlaExts.t_o : glaExts/MutableArray.t_hi
+glaExts/GlaExts.o : required/Monad.hi
+glaExts/GlaExts.mc_o : required/Monad.mc_hi
+glaExts/GlaExts.p_o : required/Monad.p_hi
+glaExts/GlaExts.t_o : required/Monad.t_hi
+glaExts/GlaExts.o : ghc/IOBase.hi
+glaExts/GlaExts.mc_o : ghc/IOBase.mc_hi
+glaExts/GlaExts.p_o : ghc/IOBase.p_hi
+glaExts/GlaExts.t_o : ghc/IOBase.t_hi
+glaExts/GlaExts.o : glaExts/Foreign.hi
+glaExts/GlaExts.mc_o : glaExts/Foreign.mc_hi
+glaExts/GlaExts.p_o : glaExts/Foreign.p_hi
+glaExts/GlaExts.t_o : glaExts/Foreign.t_hi
+glaExts/IOExts.o glaExts/IOExts.mc_o glaExts/IOExts.p_o glaExts/IOExts.t_o : glaExts/IOExts.lhs
+glaExts/IOExts.o : ghc/IOBase.hi
+glaExts/IOExts.mc_o : ghc/IOBase.mc_hi
+glaExts/IOExts.p_o : ghc/IOBase.p_hi
+glaExts/IOExts.t_o : ghc/IOBase.t_hi
+glaExts/IOExts.o : glaExts/IORef.hi
+glaExts/IOExts.mc_o : glaExts/IORef.mc_hi
+glaExts/IOExts.p_o : glaExts/IORef.p_hi
+glaExts/IOExts.t_o : glaExts/IORef.t_hi
+glaExts/IOExts.o : ghc/STBase.hi
+glaExts/IOExts.mc_o : ghc/STBase.mc_hi
+glaExts/IOExts.p_o : ghc/STBase.p_hi
+glaExts/IOExts.t_o : ghc/STBase.t_hi
+glaExts/IOExts.o : ghc/Unsafe.hi
+glaExts/IOExts.mc_o : ghc/Unsafe.mc_hi
+glaExts/IOExts.p_o : ghc/Unsafe.p_hi
+glaExts/IOExts.t_o : ghc/Unsafe.t_hi
+glaExts/IORef.o glaExts/IORef.mc_o glaExts/IORef.p_o glaExts/IORef.t_o : glaExts/IORef.lhs
+glaExts/IORef.o : ghc/PrelBase.hi
+glaExts/IORef.mc_o : ghc/PrelBase.mc_hi
+glaExts/IORef.p_o : ghc/PrelBase.p_hi
+glaExts/IORef.t_o : ghc/PrelBase.t_hi
+glaExts/IORef.o : ghc/ArrBase.hi
+glaExts/IORef.mc_o : ghc/ArrBase.mc_hi
+glaExts/IORef.p_o : ghc/ArrBase.p_hi
+glaExts/IORef.t_o : ghc/ArrBase.t_hi
+glaExts/IORef.o : ghc/IOBase.hi
+glaExts/IORef.mc_o : ghc/IOBase.mc_hi
+glaExts/IORef.p_o : ghc/IOBase.p_hi
+glaExts/IORef.t_o : ghc/IOBase.t_hi
+glaExts/IORef.o : ghc/STBase.hi
+glaExts/IORef.mc_o : ghc/STBase.mc_hi
+glaExts/IORef.p_o : ghc/STBase.p_hi
+glaExts/IORef.t_o : ghc/STBase.t_hi
+glaExts/Int.o glaExts/Int.mc_o glaExts/Int.p_o glaExts/Int.t_o : glaExts/Int.lhs
+glaExts/Int.o : ghc/PrelBase.hi
+glaExts/Int.mc_o : ghc/PrelBase.mc_hi
+glaExts/Int.p_o : ghc/PrelBase.p_hi
+glaExts/Int.t_o : ghc/PrelBase.t_hi
+glaExts/Int.o : ghc/PrelNum.hi
+glaExts/Int.mc_o : ghc/PrelNum.mc_hi
+glaExts/Int.p_o : ghc/PrelNum.p_hi
+glaExts/Int.t_o : ghc/PrelNum.t_hi
+glaExts/Int.o : ghc/PrelRead.hi
+glaExts/Int.mc_o : ghc/PrelRead.mc_hi
+glaExts/Int.p_o : ghc/PrelRead.p_hi
+glaExts/Int.t_o : ghc/PrelRead.t_hi
+glaExts/Int.o : required/Ix.hi
+glaExts/Int.mc_o : required/Ix.mc_hi
+glaExts/Int.p_o : required/Ix.p_hi
+glaExts/Int.t_o : required/Ix.t_hi
+glaExts/Int.o : ghc/Error.hi
+glaExts/Int.mc_o : ghc/Error.mc_hi
+glaExts/Int.p_o : ghc/Error.p_hi
+glaExts/Int.t_o : ghc/Error.t_hi
+glaExts/Int.o : glaExts/Bits.hi
+glaExts/Int.mc_o : glaExts/Bits.mc_hi
+glaExts/Int.p_o : glaExts/Bits.p_hi
+glaExts/Int.t_o : glaExts/Bits.t_hi
+glaExts/Int.o : ghc/GHC.hi
+glaExts/Int.mc_o : ghc/GHC.mc_hi
+glaExts/Int.p_o : ghc/GHC.p_hi
+glaExts/Int.t_o : ghc/GHC.t_hi
+glaExts/LazyST.o glaExts/LazyST.mc_o glaExts/LazyST.p_o glaExts/LazyST.t_o : glaExts/LazyST.lhs
+glaExts/LazyST.o : glaExts/ST.hi
+glaExts/LazyST.mc_o : glaExts/ST.mc_hi
+glaExts/LazyST.p_o : glaExts/ST.p_hi
+glaExts/LazyST.t_o : glaExts/ST.t_hi
+glaExts/LazyST.o : ghc/STBase.hi
+glaExts/LazyST.mc_o : ghc/STBase.mc_hi
+glaExts/LazyST.p_o : ghc/STBase.p_hi
+glaExts/LazyST.t_o : ghc/STBase.t_hi
+glaExts/LazyST.o : ghc/ArrBase.hi
+glaExts/LazyST.mc_o : ghc/ArrBase.mc_hi
+glaExts/LazyST.p_o : ghc/ArrBase.p_hi
+glaExts/LazyST.t_o : ghc/ArrBase.t_hi
+glaExts/LazyST.o : ghc/Unsafe.hi
+glaExts/LazyST.mc_o : ghc/Unsafe.mc_hi
+glaExts/LazyST.p_o : ghc/Unsafe.p_hi
+glaExts/LazyST.t_o : ghc/Unsafe.t_hi
+glaExts/LazyST.o : ghc/PrelBase.hi
+glaExts/LazyST.mc_o : ghc/PrelBase.mc_hi
+glaExts/LazyST.p_o : ghc/PrelBase.p_hi
+glaExts/LazyST.t_o : ghc/PrelBase.t_hi
+glaExts/LazyST.o : required/Monad.hi
+glaExts/LazyST.mc_o : required/Monad.mc_hi
+glaExts/LazyST.p_o : required/Monad.p_hi
+glaExts/LazyST.t_o : required/Monad.t_hi
+glaExts/LazyST.o : required/Ix.hi
+glaExts/LazyST.mc_o : required/Ix.mc_hi
+glaExts/LazyST.p_o : required/Ix.p_hi
+glaExts/LazyST.t_o : required/Ix.t_hi
+glaExts/MutableArray.o glaExts/MutableArray.mc_o glaExts/MutableArray.p_o glaExts/MutableArray.t_o : glaExts/MutableArray.lhs
+glaExts/MutableArray.o : ghc/ArrBase.hi
+glaExts/MutableArray.mc_o : ghc/ArrBase.mc_hi
+glaExts/MutableArray.p_o : ghc/ArrBase.p_hi
+glaExts/MutableArray.t_o : ghc/ArrBase.t_hi
+glaExts/MutableArray.o : glaExts/ST.hi
+glaExts/MutableArray.mc_o : glaExts/ST.mc_hi
+glaExts/MutableArray.p_o : glaExts/ST.p_hi
+glaExts/MutableArray.t_o : glaExts/ST.t_hi
+glaExts/MutableArray.o : required/Ix.hi
+glaExts/MutableArray.mc_o : required/Ix.mc_hi
+glaExts/MutableArray.p_o : required/Ix.p_hi
+glaExts/MutableArray.t_o : required/Ix.t_hi
+glaExts/ST.o glaExts/ST.mc_o glaExts/ST.p_o glaExts/ST.t_o : glaExts/ST.lhs
+glaExts/ST.o : ghc/ArrBase.hi
+glaExts/ST.mc_o : ghc/ArrBase.mc_hi
+glaExts/ST.p_o : ghc/ArrBase.p_hi
+glaExts/ST.t_o : ghc/ArrBase.t_hi
+glaExts/ST.o : ghc/Unsafe.hi
+glaExts/ST.mc_o : ghc/Unsafe.mc_hi
+glaExts/ST.p_o : ghc/Unsafe.p_hi
+glaExts/ST.t_o : ghc/Unsafe.t_hi
+glaExts/ST.o : ghc/STBase.hi
+glaExts/ST.mc_o : ghc/STBase.mc_hi
+glaExts/ST.p_o : ghc/STBase.p_hi
+glaExts/ST.t_o : ghc/STBase.t_hi
+glaExts/ST.o : ghc/PrelBase.hi
+glaExts/ST.mc_o : ghc/PrelBase.mc_hi
+glaExts/ST.p_o : ghc/PrelBase.p_hi
+glaExts/ST.t_o : ghc/PrelBase.t_hi
+glaExts/ST.o : required/Monad.hi
+glaExts/ST.mc_o : required/Monad.mc_hi
+glaExts/ST.p_o : required/Monad.p_hi
+glaExts/ST.t_o : required/Monad.t_hi
+glaExts/ST.o : required/Ix.hi
+glaExts/ST.mc_o : required/Ix.mc_hi
+glaExts/ST.p_o : required/Ix.p_hi
+glaExts/ST.t_o : required/Ix.t_hi
+glaExts/Word.o glaExts/Word.mc_o glaExts/Word.p_o glaExts/Word.t_o : glaExts/Word.lhs
+glaExts/Word.o : ghc/PrelBase.hi
+glaExts/Word.mc_o : ghc/PrelBase.mc_hi
+glaExts/Word.p_o : ghc/PrelBase.p_hi
+glaExts/Word.t_o : ghc/PrelBase.t_hi
+glaExts/Word.o : ghc/PrelNum.hi
+glaExts/Word.mc_o : ghc/PrelNum.mc_hi
+glaExts/Word.p_o : ghc/PrelNum.p_hi
+glaExts/Word.t_o : ghc/PrelNum.t_hi
+glaExts/Word.o : ghc/PrelRead.hi
+glaExts/Word.mc_o : ghc/PrelRead.mc_hi
+glaExts/Word.p_o : ghc/PrelRead.p_hi
+glaExts/Word.t_o : ghc/PrelRead.t_hi
+glaExts/Word.o : required/Ix.hi
+glaExts/Word.mc_o : required/Ix.mc_hi
+glaExts/Word.p_o : required/Ix.p_hi
+glaExts/Word.t_o : required/Ix.t_hi
+glaExts/Word.o : ghc/Error.hi
+glaExts/Word.mc_o : ghc/Error.mc_hi
+glaExts/Word.p_o : ghc/Error.p_hi
+glaExts/Word.t_o : ghc/Error.t_hi
+glaExts/Word.o : glaExts/Bits.hi
+glaExts/Word.mc_o : glaExts/Bits.mc_hi
+glaExts/Word.p_o : glaExts/Bits.p_hi
+glaExts/Word.t_o : glaExts/Bits.t_hi
+glaExts/Word.o : ghc/GHC.hi
+glaExts/Word.mc_o : ghc/GHC.mc_hi
+glaExts/Word.p_o : ghc/GHC.p_hi
+glaExts/Word.t_o : ghc/GHC.t_hi
+concurrent/Channel.o concurrent/Channel.mc_o concurrent/Channel.p_o concurrent/Channel.t_o : concurrent/Channel.lhs
+concurrent/Channel.o : required/Prelude.hi
+concurrent/Channel.mc_o : required/Prelude.mc_hi
+concurrent/Channel.p_o : required/Prelude.p_hi
+concurrent/Channel.t_o : required/Prelude.t_hi
+concurrent/Channel.o : ghc/IOBase.hi
+concurrent/Channel.mc_o : ghc/IOBase.mc_hi
+concurrent/Channel.p_o : ghc/IOBase.p_hi
+concurrent/Channel.t_o : ghc/IOBase.t_hi
+concurrent/Channel.o : ghc/ConcBase.hi
+concurrent/Channel.mc_o : ghc/ConcBase.mc_hi
+concurrent/Channel.p_o : ghc/ConcBase.p_hi
+concurrent/Channel.t_o : ghc/ConcBase.t_hi
+concurrent/Channel.o : ghc/STBase.hi
+concurrent/Channel.mc_o : ghc/STBase.mc_hi
+concurrent/Channel.p_o : ghc/STBase.p_hi
+concurrent/Channel.t_o : ghc/STBase.t_hi
+concurrent/Channel.o : ghc/Unsafe.hi
+concurrent/Channel.mc_o : ghc/Unsafe.mc_hi
+concurrent/Channel.p_o : ghc/Unsafe.p_hi
+concurrent/Channel.t_o : ghc/Unsafe.t_hi
+concurrent/ChannelVar.o concurrent/ChannelVar.mc_o concurrent/ChannelVar.p_o concurrent/ChannelVar.t_o : concurrent/ChannelVar.lhs
+concurrent/ChannelVar.o : required/Prelude.hi
+concurrent/ChannelVar.mc_o : required/Prelude.mc_hi
+concurrent/ChannelVar.p_o : required/Prelude.p_hi
+concurrent/ChannelVar.t_o : required/Prelude.t_hi
+concurrent/ChannelVar.o : ghc/ConcBase.hi
+concurrent/ChannelVar.mc_o : ghc/ConcBase.mc_hi
+concurrent/ChannelVar.p_o : ghc/ConcBase.p_hi
+concurrent/ChannelVar.t_o : ghc/ConcBase.t_hi
+concurrent/Concurrent.o concurrent/Concurrent.mc_o concurrent/Concurrent.p_o concurrent/Concurrent.t_o : concurrent/Concurrent.lhs
+concurrent/Concurrent.o : concurrent/Parallel.hi
+concurrent/Concurrent.mc_o : concurrent/Parallel.mc_hi
+concurrent/Concurrent.p_o : concurrent/Parallel.p_hi
+concurrent/Concurrent.t_o : concurrent/Parallel.t_hi
+concurrent/Concurrent.o : concurrent/ChannelVar.hi
+concurrent/Concurrent.mc_o : concurrent/ChannelVar.mc_hi
+concurrent/Concurrent.p_o : concurrent/ChannelVar.p_hi
+concurrent/Concurrent.t_o : concurrent/ChannelVar.t_hi
+concurrent/Concurrent.o : concurrent/Channel.hi
+concurrent/Concurrent.mc_o : concurrent/Channel.mc_hi
+concurrent/Concurrent.p_o : concurrent/Channel.p_hi
+concurrent/Concurrent.t_o : concurrent/Channel.t_hi
+concurrent/Concurrent.o : concurrent/Semaphore.hi
+concurrent/Concurrent.mc_o : concurrent/Semaphore.mc_hi
+concurrent/Concurrent.p_o : concurrent/Semaphore.p_hi
+concurrent/Concurrent.t_o : concurrent/Semaphore.t_hi
+concurrent/Concurrent.o : concurrent/Merge.hi
+concurrent/Concurrent.mc_o : concurrent/Merge.mc_hi
+concurrent/Concurrent.p_o : concurrent/Merge.p_hi
+concurrent/Concurrent.t_o : concurrent/Merge.t_hi
+concurrent/Concurrent.o : concurrent/SampleVar.hi
+concurrent/Concurrent.mc_o : concurrent/SampleVar.mc_hi
+concurrent/Concurrent.p_o : concurrent/SampleVar.p_hi
+concurrent/Concurrent.t_o : concurrent/SampleVar.t_hi
+concurrent/Concurrent.o : ghc/ConcBase.hi
+concurrent/Concurrent.mc_o : ghc/ConcBase.mc_hi
+concurrent/Concurrent.p_o : ghc/ConcBase.p_hi
+concurrent/Concurrent.t_o : ghc/ConcBase.t_hi
+concurrent/Merge.o concurrent/Merge.mc_o concurrent/Merge.p_o concurrent/Merge.t_o : concurrent/Merge.lhs
+concurrent/Merge.o : concurrent/Semaphore.hi
+concurrent/Merge.mc_o : concurrent/Semaphore.mc_hi
+concurrent/Merge.p_o : concurrent/Semaphore.p_hi
+concurrent/Merge.t_o : concurrent/Semaphore.t_hi
+concurrent/Merge.o : ghc/ConcBase.hi
+concurrent/Merge.mc_o : ghc/ConcBase.mc_hi
+concurrent/Merge.p_o : ghc/ConcBase.p_hi
+concurrent/Merge.t_o : ghc/ConcBase.t_hi
+concurrent/Merge.o : ghc/Unsafe.hi
+concurrent/Merge.mc_o : ghc/Unsafe.mc_hi
+concurrent/Merge.p_o : ghc/Unsafe.p_hi
+concurrent/Merge.t_o : ghc/Unsafe.t_hi
+concurrent/Merge.o : ghc/IOBase.hi
+concurrent/Merge.mc_o : ghc/IOBase.mc_hi
+concurrent/Merge.p_o : ghc/IOBase.p_hi
+concurrent/Merge.t_o : ghc/IOBase.t_hi
+concurrent/Parallel.o concurrent/Parallel.mc_o concurrent/Parallel.p_o concurrent/Parallel.t_o : concurrent/Parallel.lhs
+concurrent/Parallel.o : ghc/ConcBase.hi
+concurrent/Parallel.mc_o : ghc/ConcBase.mc_hi
+concurrent/Parallel.p_o : ghc/ConcBase.p_hi
+concurrent/Parallel.t_o : ghc/ConcBase.t_hi
+concurrent/SampleVar.o concurrent/SampleVar.mc_o concurrent/SampleVar.p_o concurrent/SampleVar.t_o : concurrent/SampleVar.lhs
+concurrent/SampleVar.o : ghc/ConcBase.hi
+concurrent/SampleVar.mc_o : ghc/ConcBase.mc_hi
+concurrent/SampleVar.p_o : ghc/ConcBase.p_hi
+concurrent/SampleVar.t_o : ghc/ConcBase.t_hi
+concurrent/Semaphore.o concurrent/Semaphore.mc_o concurrent/Semaphore.p_o concurrent/Semaphore.t_o : concurrent/Semaphore.lhs
+concurrent/Semaphore.o : ghc/ConcBase.hi
+concurrent/Semaphore.mc_o : ghc/ConcBase.mc_hi
+concurrent/Semaphore.p_o : ghc/ConcBase.p_hi
+concurrent/Semaphore.t_o : ghc/ConcBase.t_hi
+# DO NOT DELETE: End of Haskell dependencies
index 4ab72b8..558d54c 100644 (file)
@@ -18,6 +18,7 @@ import STBase
 import PrelBase
 import CCall
 import Addr
+import Unsafe ( runST )
 import GHC
 
 infixl 9  !, //
index 7f35075..68dd330 100644 (file)
@@ -27,10 +27,6 @@ newtype ST s a = ST (State# s -> STret s a)
 
 data STret s a = STret (State# s) a
 
-runST (ST m)
-  = case m realWorld# of
-      STret _ r -> r
-
 instance Monad (ST s) where
     {-# INLINE return #-}
     {-# INLINE (>>)   #-}
index c07c82c..1da8e25 100644 (file)
@@ -14,7 +14,8 @@ module Unsafe
         ( unsafePerformIO, 
          unsafeInterleaveIO, 
          unsafeInterleaveST,
-         trace
+         trace,
+         runST
         ) where
 \end{code}
 
@@ -67,3 +68,43 @@ unsafeInterleaveST (ST m) = ST ( \ s ->
     STret s r)
 
 \end{code}
+
+Definition of runST
+~~~~~~~~~~~~~~~~~~~
+
+SLPJ 95/04: Why @runST@ must not have an unfolding; consider:
+\begin{verbatim}
+f x =
+  runST ( \ s -> let
+                   (a, s')  = newArray# 100 [] s
+                   (_, s'') = fill_in_array_or_something a x s'
+                 in
+                 freezeArray# a s'' )
+\end{verbatim}
+If we inline @runST@, we'll get:
+\begin{verbatim}
+f x = let
+       (a, s')  = newArray# 100 [] realWorld#{-NB-}
+       (_, s'') = fill_in_array_or_something a x s'
+      in
+      freezeArray# a s''
+\end{verbatim}
+And now the @newArray#@ binding can be floated to become a CAF, which
+is totally and utterly wrong:
+\begin{verbatim}
+f = let
+    (a, s')  = newArray# 100 [] realWorld#{-NB-} -- YIKES!!!
+    in
+    \ x ->
+       let (_, s'') = fill_in_array_or_something a x s' in
+       freezeArray# a s''
+\end{verbatim}
+All calls to @f@ will share a {\em single} array!  End SLPJ 95/04.
+
+\begin{code}
+runST :: (All s => ST s a) -> a
+runST st = 
+  case st of
+       ST m -> case m realWorld# of
+                       STret _ r -> r
+\end{code}