Pavel
Concerning “Another one”, the problem is that with BangPatterns enabled, GHC understands
vs ! i = ...
to mean
vs (!i) = ...
with a bang-pattern, thus defining vs rather than (!). Reason: the common case of saying
f !x !y = e
is so convenient that we didn’t want to require parens. But the cost is that you can’t define (!) in an infix way. So that’s that one.
For the profiling thing, is this the same as
http://hackage.haskell.org/trac/ghc/ticket/4462? What happens if you say –dcore-lint? We should look at #4462.
Simon
From: glasgow-haskell-users-bounces@haskell.org [mailto:glasgow-haskell-users-bounces@haskell.org]
On Behalf Of Pavel Perikov
Sent: 01 February 2011 15:01
To: GHC users
Subject: Trying to build Agda 2.2.9 with ghc-7.1.20110131
If anyone interested...
Agda-2.2.9 compiled perfectly with 7.0.1 release but with 7.1.20110131 the compiler had a few problems including "impossible happened" when building profiling library.
Another one was in src/full/Agda/TypeChecking/Positivity.hs @ 260:
instance ComputeOccurrences Term where
occurrences vars v = case v of
Var i args ->
maybe Map.empty here (vars ! fromIntegral i)
..........................
where
vs ! i
| i < length vs = vs !! i
| otherwise = error $ show vs ++ " ! " ++ show i ++ " (" ++ show v ++ ")"
Compiler complained about ! in "vars ! fromIntegral" suggesting Map.!
after i changed the code to
where
(!) vs i
| i < length vs = vs !! i
| otherwise = error $ show vs ++ " ! " ++ show i ++ " (" ++ show v ++ ")"
everything proceeded as expected.
I also had to give -XFlexibleInstances and -XBangPatterns that was not required previously.
Agda can be got from
darcs get http://code.haskell.org/Agda/
pavel.