Ahh, I see, perhaps you could give me a clue as to why (or how) this works... I have probably become a little over keen on using '$' as a general replacement for braces '(' ')' - the '$' was there because the actual wrapper function takes arguments and it looks neater not to have too many nested braces. I thought this could be something to do with runST enforcing strictness, but '$!' causes the same problem, only runST (wrapper x y z) appears to work - if its not too much trouble, how does runSTs type enforce this, and why does using '$' and '$!' cause type leakage? Regards, Keean Schupke. Simon Marlow wrote:
However the problem comes when I try and use runST to run it...
runMatrix :: Array (Int,Int) Int runMatrix = runST $ wrapper
This is becase 's' escapes Expected: ST s a -> b Inferred: (forall s1. ST s1 a) -> a
Delete the dollar?
Cheers, Simon _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users