Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Pugs build fails on GHC 7.4.1/Windows #25

svatsan opened this Issue · 3 comments

2 participants


Pugs.hs build fails on latest haskell platform (2012.2.0.0 with GHC 7.4.1). The OS is windows 7 64 bit.

C:\>cabal update
Downloading the latest package list from

C:\>cabal install Pugs
Resolving dependencies...
Configuring pugs-compat-
Building pugs-compat-
Preprocessing library pugs-compat-

    Could not find module `IO'
    It is a member of the hidden package `haskell98-'.
    Perhaps you need to add `haskell98' to the build-depends in your .cabal file
    Use -v to see a list of the files searched for.
cabal: Error: some packages failed to install:
Pugs- depends on pugs-compat- which failed
to install.
pugs-compat- failed during the building phase. The
exception was:
ExitFailure 1

C:\>ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.4.1

A more verbose output can be found here:

I tried to fix that with moving IO to System.IO - admittedly, it seems to be more involved than that. Unless I'm very much mistaken, this would involve moving any dependencies from haskell98 to base (that's bundled along with GHC, as is the case since GHC 7.0.1)


It's probably to do with base now being Haskell 2010, and thus not having Haskell 98's library set visible. There's a way to get GHC to use the Haskell 98 set, which is more of a stopgap but might help get things up and running for a while (i.e. until they stop shipping Haskell 98's core libraries). As answers explain:

ghc -package haskell98 -hide-package base

Because base is now Haskell 2012, you have to hide it and bring Haskell 98 in instead.

@audreyt audreyt referenced this issue from a commit
@audreyt audreyt * Try addressing #25.
  Still downloading Haskell Platform on Windows 8 here, so not
  exactly sure if it's the right fix... Will follow up soon.

Hiding base package doesn't quite seem to be the right solution, since Compat.hs in pugs-compat uses System.Mem.Weak which is part of base. Using both haskell98 and base doesn't cut it either, since it leads to ambiguous Prelude errors.

Is there a better way of specifiying exact modules on a per-file basis?

@audreyt audreyt referenced this issue from a commit
@audreyt audreyt Revert "* Try addressing #25."
OK, that doesn't work. It appears to be a tricky problem...
Maybe we will end up splitting the "base" pugs-compat part
with the "haskell98" part.

This reverts commit 3ee7e28.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.