[Haskell-cafe] REALLY simple STRef examples
Chad Scherrer
chad.scherrer at gmail.com
Wed Jul 19 18:02:06 EDT 2006
I've looked around at the various STRef examples out there, but still
nothing I write myself using this will work. I'm trying to figure out
how the s is escaping in really simple examples like
x = runST $ return 1
y = runST $ do {r <- newSTRef 1; readSTRef r}
Neither of these works in ghci - they both say
<interactive>:1:0:
Inferred type is less polymorphic than expected
Quantified type variable `s' escapes
Expected type: ST s a -> b
Inferred type: (forall s1. ST s1 a) -> a
In the first argument of `($)', namely `runST'
In the definition of `it':
...
I thought maybe I needed to replace 1 with (1 :: Int) so the state
representation didn't force the type, but it still gives the same
result.
Can someone point me to the simplest possible runST example that
actually works? Thanks!
--
Chad Scherrer
"Time flies like an arrow; fruit flies like a banana" -- Groucho Marx
More information about the Haskell-Cafe
mailing list