Hi, I'm trying to use the ST monad in order to turn an almost pure function into a pure one: reading a precalculated list of primes into a prime set. But the following code brings an error:
> primes :: Set Integer > primes = runST $ getPrimes "primes10h7.txt" > getPrimes :: String -> (forall s. ST s (Set Integer)) > getPrimes file = > do cont <- unsafeIOToST (readFile file) > let set = fromList $ map read $ lines cont > return set And here is the error: Couldn't match expected type `forall s. ST s a' against inferred type `ST s (Set Integer)' In the second argument of `($)', namely `getPrimes "primes10h7.txt"' In the expression: runST $ (getPrimes "primes10h7.txt") In the definition of `primes': primes = runST $ (getPrimes "primes10h7.txt") Compiled with GHC 6.6.1 with extensions activated. Nicu _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe