Hi Brandon,
indeed in my example if you add:
b <- evaluate a
after the definition of "a" it works.
However, in my original program it doesn't work, I suppose because I interpret the user submitted code (here "let (a::String) = a"
for the example) via Hint and Hint-server, and the interpretation must be done in another thread...
Best,
Corentin
On Mon, Dec 24, 2012 at 3:46 PM, Brandon Allbery
<allbery.b@gmail.com> wrote:
execBlocking :: MVar (Maybe MyData) -> IO ()
execBlocking mv = do
let (a::String) = a
--If you uncomment the next line, it will work
--putStrLn $ show a
putMVar mv (Just $ MyData a "toto")
It's laziness, yes; you need to do something along the lines of
> let a = length a `seq` a
or possibly Control.Exception.evaluate needs to be involved somewhere.
--
brandon s allbery kf8nh sine nomine associates