Re: problem compiling an older Haskell program with GHC 6.6.1

On Fri, 6 Jul 2007 09:59:41 -0400 Scott Stoller wrote:
I am trying to compile paradox 1.0, an older (GHC 5) Haskell program, with GHC 6.6.1 (the Solaris 10 / x86 binary distribution).
<snip>
Set.hs:26:7: Could not find module `Data.FiniteMap': locations searched: Data/FiniteMap.hs Data/FiniteMap.lhs *** Deleting temp files: Deleting: /tmp/ghc13306_0/ghc13306_0.dep *** Deleting temp dirs: Deleting: /tmp/ghc13306_0 make: *** [depend.mak] Error 1
is this a backwards-compatibility issue between GHC 6.6.1 and older versions of GHC? is there a simple workaround?
The problem is that the Data.FiniteMap library has been deprecated and renamed to Data.Map. See http://www.haskell.org/ghc/dist/current/ docs/libraries/base/Data-Map.html . The solution is to go through paradox and change references to Data.FiniteMap to Data.Map and, especially, to check that functions from Data.FiniteMap now have the form of Data.Map. Changing the functions should not be too hard: mostly swapping variables around. You may also run into namespace collision problems with Data.List (GHC will alert you), in which case: import Data.Map as Map import Data.List as List and for each function that collided, such as map or fold, specify which one you are using: Data.map ... List.map ... Otherwise you should be fine. The change from Data.FiniteMap to Data.Map has been around for a little while now but there are still quite a few old libraries kicking around that use FiniteMap and need to be updated. Cheers, Pete
participants (1)
-
Peter Tanski