[Haskell-cafe] ContT and ST stack

Anakim Border akborder at gmail.com
Thu Mar 10 14:18:24 CET 2011

Dear list,

I have the following (simplified) piece of code:

find :: Int -> [Int]
find i = runST . (`runContT` return) $
  callCC $ \escape -> do
    return []

which used to compile correctly under GHC 6.12.3.

Now that I've switched to 7.0.2 it gets rejected with the following error:

    Couldn't match expected type `forall s. ST s c0'
                with actual type `m0 r0'
    Expected type: ContT r0 m0 a0 -> forall s. ST s c0
      Actual type: ContT r0 m0 a0 -> m0 r0
    In the second argument of `(.)', namely `(`runContT` return)'
    In the expression: runST . (`runContT` return)

I'm a little bit lost at what exactly is the problem. Anyone can
suggest a solution?



More information about the Haskell-Cafe mailing list