hi,

thanks to Stefan, I am past the second problem in compiling this program
(needed to change 'bounds' to 'getBounds').  now I get a more intimidating
error message...

I am trying to compile paradox 1.0, an older (GHC 5) Haskell program, with
GHC 6.6.1.  I get the intimidating error message shown below.  I would
appreciate any advice about how to fix this.  I am guessing that the
problem might be a change in the type of some library function.

best regards,
scott

p.s. the file causing the error is in the paradox source code at
http://www.cs.sunysb.edu/~stoller/out/paradox-1.0-casc.tar.gz


Building paradox (release)
Compiling: AnalysisTypes.hs
Glasgow Haskell Compiler, Version 6.6.1, for Haskell 98, compiled by GHC 
version 6.6.1
Using package config file: /usr/local/lib/ghc-6.6.1/package.conf
wired-in package base mapped to base-2.1.1
wired-in package rts mapped to rts-1.0
wired-in package haskell98 mapped to haskell98-1.0
wired-in package template-haskell mapped to template-haskell-2.1
Hsc static flags: -fauto-sccs-on-all-toplevs -static
Created temporary directory: /tmp/ghc835_0
*** Checking old interface for main:AnalysisTypes:
*** Parser:
*** Renamer/typechecker:

AnalysisTypes.hs:135:2:
    Inferred type is less polymorphic than expected
      Quantified type variable `s' is mentioned in the environment:
        m :: forall b.
             STRef s Int
             -> STRef s ((:=>) Symbol [TypeId s])
             -> STRef s ((:=>) Symbol ([TypeId s], TypeId s))
             -> STRef s ((:=>) Symbol (TypeId s))
             -> (String -> ST s b)
             -> (a -> ST s b)
             -> ST s b
          (bound at AnalysisTypes.hs:284:6)
    In the first argument of `runST', namely
        `(do idfs <- newSTRef 0
             preds <- newSTRef empty
             funs <- newSTRef empty
             vars <- newSTRef empty
             m idfs
               preds
               funs
               vars
               (\ s -> return (Left s))
               (\ _ -> do ps' <- readSTRef preds
                          fs' <- readSTRef funs
                          ps <- sequence ([... | (p, ts') <- ...])
                          fs <- sequence ([... | (f, (ts', t')) <- ...])
                          typeIds' <- sequence ([... | t' <- ...])
                          let typeIds = ...
                              names = ...
                              typesAndTypeIds = ...
                              types = ...
                              typeIdToType = ...
                              typeOfId tid = ...
                              predTable = ...
                              funTable = ...
                              typeOfPred Equal = ...
                              typeOfPred (p ::- _) = ...
                              typeOfFun (f ::- _) = ...
                              trans c = ...
                                      where
                                          ...
                          return (Right (types, trans))))'
    In the expression:
        runST
          (do idfs <- newSTRef 0
              preds <- newSTRef empty
              funs <- newSTRef empty
              vars <- newSTRef empty
              m idfs
                preds
                funs
                vars
                (\ s -> return (Left s))
                (\ _ -> do ps' <- readSTRef preds
                           fs' <- readSTRef funs
                           ps <- sequence ([... | (p, ts') <- ...])
                           fs <- sequence ([... | (f, (ts', t')) <- ...])
                           typeIds' <- sequence ([... | t' <- ...])
                           let typeIds = ...
                               names = ...
                               typesAndTypeIds = ...
                               types = ...
                               typeIdToType = ...
                               typeOfId tid = ...
                               predTable = ...
                               funTable = ...
                               typeOfPred Equal = ...
                               typeOfPred (p ::- _) = ...
                               typeOfFun (f ::- _) = ...
                               trans c = ...
                                       where
                                           ...
                           return (Right (types, trans))))
    In the definition of `runT':
        runT tm
               = runST
                   (do idfs <- newSTRef 0
                       preds <- newSTRef empty
                       funs <- newSTRef empty
                       vars <- newSTRef empty
                       m idfs
                         preds
                         funs
                         vars
                         (\ s -> return (Left s))
                         (\ _ -> do ps' <- ...
                                    fs' <- ...
                                    ps <- ...
                                    fs <- ...
                                    typeIds' <- ...
                                    let ...
                                    ...))
               where
                   MkT m = tm
*** Deleting temp files:
Deleting: /tmp/ghc835_0/ghc835_0.hc
Warning: deleting non-existent /tmp/ghc835_0/ghc835_0.hc
*** Deleting temp dirs:
Deleting: /tmp/ghc835_0
make: *** [AnalysisTypes.o] Error 1
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to