From 86b97832f5ccf79554b630e004f6be1611179e76 Mon Sep 17 00:00:00 2001 From: simonm Date: Thu, 4 Dec 1997 11:05:58 +0000 Subject: [PATCH] [project @ 1997-12-04 11:05:32 by simonm] 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 | 2 - ghc/compiler/prelude/PrelInfo.lhs | 1 - ghc/compiler/prelude/PrelVals.lhs | 85 --- ghc/lib/.depend | 1042 ++++++++++++++++++++++++++++++++++++ ghc/lib/ghc/ArrBase.lhs | 1 + ghc/lib/ghc/STBase.lhs | 4 - ghc/lib/ghc/Unsafe.lhs | 43 +- 7 files changed, 1085 insertions(+), 93 deletions(-) create mode 100644 ghc/lib/.depend diff --git a/ghc/compiler/basicTypes/Unique.lhs b/ghc/compiler/basicTypes/Unique.lhs index 030328b..34d05c4 100644 --- a/ghc/compiler/basicTypes/Unique.lhs +++ b/ghc/compiler/basicTypes/Unique.lhs @@ -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 diff --git a/ghc/compiler/prelude/PrelInfo.lhs b/ghc/compiler/prelude/PrelInfo.lhs index cd531f2..4a894b8 100644 --- a/ghc/compiler/prelude/PrelInfo.lhs +++ b/ghc/compiler/prelude/PrelInfo.lhs @@ -221,7 +221,6 @@ wired_in_ids , rEC_CON_ERROR_ID , rEC_UPD_ERROR_ID , realWorldPrimId - , runSTId , tRACE_ID , unpackCString2Id , unpackCStringAppendId diff --git a/ghc/compiler/prelude/PrelVals.lhs b/ghc/compiler/prelude/PrelVals.lhs index dbed539..d5ecd9c 100644 --- a/ghc/compiler/prelude/PrelVals.lhs +++ b/ghc/compiler/prelude/PrelVals.lhs @@ -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 index 0000000..5869379 --- /dev/null +++ b/ghc/lib/.depend @@ -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 diff --git a/ghc/lib/ghc/ArrBase.lhs b/ghc/lib/ghc/ArrBase.lhs index 4ab72b8..558d54c 100644 --- a/ghc/lib/ghc/ArrBase.lhs +++ b/ghc/lib/ghc/ArrBase.lhs @@ -18,6 +18,7 @@ import STBase import PrelBase import CCall import Addr +import Unsafe ( runST ) import GHC infixl 9 !, // diff --git a/ghc/lib/ghc/STBase.lhs b/ghc/lib/ghc/STBase.lhs index 7f35075..68dd330 100644 --- a/ghc/lib/ghc/STBase.lhs +++ b/ghc/lib/ghc/STBase.lhs @@ -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 (>>) #-} diff --git a/ghc/lib/ghc/Unsafe.lhs b/ghc/lib/ghc/Unsafe.lhs index c07c82c..1da8e25 100644 --- a/ghc/lib/ghc/Unsafe.lhs +++ b/ghc/lib/ghc/Unsafe.lhs @@ -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} -- 1.7.10.4