[Haskell-cafe] Re: missingH 0.18.6 - problems with cabal configure

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Wed Aug 20 19:23:58 EDT 2008


On Wed, 2008-08-20 at 20:53 +0200, Ben Franksen wrote:
> Andrew U. Frank wrote:
> 
> > when i run cabal i get an error message:
> > :~/haskellSources/packages/MissingH-0.18.6$ runhaskell Setup configure
> > 
> > Setup.hs:19:35:
> >     Couldn't match expected type `(Either
> >                                      GenericPackageDescription
> > PackageDescription,
> >                                    HookedBuildInfo)'
> >            against inferred type `PackageDescription'
> >     In the first argument of `(confHook defaultUserHooks)', namely
> >         `mydescrip'
> >     In the expression:
> >         let
> >           mydescrip = case os of
> >                         "mingw32" -> ...
> >                         _ -> ...
> >         in (confHook defaultUserHooks) mydescrip flags
> >     In the definition of `customConfHook':
> >         customConfHook descrip flags
> >                          = let mydescrip = ...
> >                            in (confHook defaultUserHooks) mydescrip
> > flags
> > 
> > 
> > what is wrong? i use ghc 6.8.2 and cabal 1.2.3.0
> 
> Looks like you'll have to upgrade Cabal (the library). Which version exactly
> you need I don't know but I'd try the latest and if that fails from there
> on work backwards.

Actually it's an API change that came in in Cabal-1.2.

Looking at the code in the error message it looks like you're generating
a different package description based on the OS. That can now be done
declaratively in the .cabal file itself using something like:

library
  build-depends: base, blah, blah
  if os(windows)
    build-depends: Win32
    cpp-options: -DDO_THE_OTHER_THING
  else
    ...

Take a look in the Cabal user guide or at other .cabal files for
examples.

Duncan



More information about the Haskell-Cafe mailing list