Hi all, I'm getting the following compile error: Converting to Grin... Found 2 CAFs to convert to constants, 0 of which are recursive. Recursive Constant theMain$10 v-1282411543 &(CControl.CoolConcurrent.Thread &(CInt# 0) &(P3_theMain$8)) theMain$11 v-1297615895 &(CControl.CoolConcurrent.TS 0 0 &(CControl.CoolConcurrent.Thread &(CInt# 0) &(P3_theMain$8)) &(CQ.Q &[] &[])) CAFS Alias still exists: ELit (Control.CoolConcurrent.TID (EVar (x51::ELit (Jhc.Prim.Int::ESort *)))::ELit (Jhc.Prim.Int::ESort *)) You can (hopefully?) reproduce this error by darcs getting my repository and compiling the demo: darcs get http://abridgegame.org/concurrency jhc demo.hs I believe this is vanilla Haskell code that ought to compile just fine. It does hide parts of the Prelude, but I don't see how that could be involved. For the curious, I started experimenting with a pure-Haskell implementation of concurrency. It looks feasible, although I haven't yet implemented any blocking IO using non-blocking primitives (which is often the whole point of concurrency). Of course, once the FFI is involved, we may want to involve the compiler, since any FFI call may block--and thus might be advisable to run in a separate thread. But that's not an issue for any of my applications. -- David Roundy