Haskell 98 updates.
# define _CONCAT_ concat
#endif
+#if __HASKELL1__ > 4
+#define FMAP fmap
+#define ISALPHANUM isAlphaNum
+#define IOERROR ioError
+#else
+#define FMAP map
+#define ISALPHANUM isAlphanum
+#define IOERROR fail
+#endif
+
#endif
import Outputable
import Util ( thenCmp )
-#if __HASKELL1__ > 4
-import Ratio (numerator, denominator)
-#endif
+import Ratio ( numerator, denominator )
\end{code}
#include "HsVersions.h"
-#if __HASKELL1__ > 4
-#define ISALPHANUM isAlphaNum
-#else
-#define ISALPHANUM isAlphanum
-#endif
-
import Char ( isAlpha, isUpper, isLower, ISALPHANUM, ord )
import Util ( thenCmp )
import FiniteMap ( FiniteMap, emptyFM, lookupFM, addToFM, elemFM )
%
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-% $Id: CgClosure.lhs,v 1.21 1998/12/18 17:40:49 simonpj Exp $
+% $Id: CgClosure.lhs,v 1.22 1999/01/15 15:57:36 simonm Exp $
%
\section[CgClosure]{Code generation for closures}
\begin{code}
data IsThunk = IsThunk | IsFunction -- Bool-like, local
---#ifdef DEBUG
+-- #ifdef DEBUG
deriving Eq
---#endif
+-- #endif
enterCostCentreCode :: ClosureInfo -> CostCentreStack -> IsThunk -> Code
motherShip = do
he <- getHostByName "laysan.dcs.gla.ac.uk"
case (hostAddresses he) of
- [] -> fail (userError "No address!")
+ [] -> IOERROR (userError "No address!")
(x:_) -> return (SockAddrInet motherShipPort x)
--magick
) where
#include "HsVersions.h"
---#include "config.h"
+-- #include "config.h"
import AbsCSyn ( MagicId(..) )
import AbsCUtils ( magicIdPrimRep )
\begin{code}
primOpInfo CatchOp
= let
- a = alphaTy; a_tv = alphaTyVar;
+ a = alphaTy; a_tv = alphaTyVar
b = betaTy; b_tv = betaTyVar;
in
mkGenPrimOp SLIT("catch#") [a_tv, b_tv] [a, mkFunTy b a] a
primOpInfo RaiseOp
= let
- a = alphaTy; a_tv = alphaTyVar;
+ a = alphaTy; a_tv = alphaTyVar
b = betaTy; b_tv = betaTyVar;
in
mkGenPrimOp SLIT("raise#") [a_tv, b_tv] [a] b
import Outputable
import GlaExts
+
+#if __HASKELL1__ > 4
+import Ratio ( (%) )
+#endif
}
%name parseIface
import Outputable
import Util ( removeDups )
import List ( nub )
-import Char ( isAlphanum )
\end{code}
hi_boot_xiffus = "toob-ih." -- .hi-boot reversed.
addModules his@(hi_env, hib_env) nm = fromMaybe his $
- map (\ (mod_nm,v) -> (addToFM_C addNewOne hi_env mod_nm v, hib_env))
+ FMAP (\ (mod_nm,v) -> (addToFM_C addNewOne hi_env mod_nm v, hib_env))
(go xiffus rev_nm) `seqMaybe`
- map (\ (mod_nm,v) -> (hi_env, addToFM_C overrideNew hib_env mod_nm v))
+ FMAP (\ (mod_nm,v) -> (hi_env, addToFM_C overrideNew hib_env mod_nm v))
(go hi_boot_version_xiffus rev_nm) `seqMaybe`
- map (\ (mod_nm,v) -> (hi_env, addToFM_C addNewOne hib_env mod_nm v))
+ FMAP (\ (mod_nm,v) -> (hi_env, addToFM_C addNewOne hib_env mod_nm v))
(go hi_boot_xiffus rev_nm)
where
rev_nm = reverse nm
import Maybes
import IO ( hPutStr, stderr )
import Outputable
+
+import Ratio ( numerator, denominator )
\end{code}
\begin{code}
plusUDs :: UsageDetails -> UsageDetails -> UsageDetails
plusUDs (MkUD {dict_binds = db1, calls = calls1})
(MkUD {dict_binds = db2, calls = calls2})
- = MkUD {dict_binds, calls}
+ = MkUD {dict_binds = d, calls = c}
where
- dict_binds = db1 `unionBags` db2
- calls = calls1 `unionCalls` calls2
+ d = db1 `unionBags` db2
+ c = calls1 `unionCalls` calls2
plusUDList = foldr plusUDs emptyUDs
failTc down env = give_up
give_up :: IO a
-give_up = fail (userError "Typecheck failed")
+give_up = IOERROR (userError "Typecheck failed")
failWithTc :: Message -> TcM s a -- Add an error message and fail
failWithTc err_msg = failWithTcM (emptyTidyEnv, err_msg)