
2 Sep
2008
2 Sep
'08
8:30 a.m.
Sittampalam, Ganesh wrote:
Can't you write two recursive modules with <- that depend on each other, so that there's no valid initialisation order?
Contrived example follows:
module Module1 where
glob1 :: IORef Int glob1 <- mod2 >>= newIORef
mod1 :: IO Int mod1 = readIORef glob1
module Module2 where
glob2 :: IORef Int glob2 <- mod1 >>= newIORef
mod2 :: IO Int mod2 = readIORef glob2
Immediatly breaking my promise to shut up.. This is illegal because you're only allowed to use ACIO in top level <- bindings and readIORef isn't (and clearly could not be) ACIO. Regards -- Adrian Hey