[Haskell-cafe] GHC compilation with postres libs
Hi guys, been spending some time compiling my app but nothing seems to work. here's the picture: - created a Main.hsc which include some external libs. - included this pragma is Main.hsc {-# OPTIONS -fglasgow-exts #-} -compiled Main.hsc with: $ hsc2hs -I/usr/local/pgsql/include Main.hsc all went well with this - tried compiling this way: $ ghc -o test -L/usr/local/pgsql/lib Main.hs here's the error: Main.o(.text+0xbd): In function `r289_entry': : undefined reference to `PQgetvalue' Main.o(.text+0x28f): In function `r28b_entry': : undefined reference to `PQexec' Main.o(.text+0x42f): In function `r28d_entry': : undefined reference to `PQreset' Main.o(.text+0x573): In function `r28f_entry': : undefined reference to `PQfinish' Main.o(.text+0x6b7): In function `r28h_entry': : undefined reference to `PQstatus' Main.o(.text+0x82b): In function `r28j_entry': : undefined reference to `PQconnectdb' collect2: ld returned 1 exit status any ideas? kind regards, eyan -- http://www.eyan.org Object-oriented programming offers a sustainable way to write spaghetti code. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] GHC compilation with postres libs
On Fri, 25 Feb 2005 22:15:02 +0800, Edwin Eyan Moragas [EMAIL PROTECTED] wrote: Hi guys, been spending some time compiling my app but nothing seems to work. here's the picture: - created a Main.hsc which include some external libs. - included this pragma is Main.hsc {-# OPTIONS -fglasgow-exts #-} -compiled Main.hsc with: $ hsc2hs -I/usr/local/pgsql/include Main.hsc all went well with this - tried compiling this way: $ ghc -o test -L/usr/local/pgsql/lib Main.hs here's the error: Main.o(.text+0xbd): In function `r289_entry': : undefined reference to `PQgetvalue' Main.o(.text+0x28f): In function `r28b_entry': : undefined reference to `PQexec' Main.o(.text+0x42f): In function `r28d_entry': : undefined reference to `PQreset' Main.o(.text+0x573): In function `r28f_entry': : undefined reference to `PQfinish' Main.o(.text+0x6b7): In function `r28h_entry': : undefined reference to `PQstatus' Main.o(.text+0x82b): In function `r28j_entry': : undefined reference to `PQconnectdb' collect2: ld returned 1 exit status any ideas? Including header files isn't enough, you have to link with the libraries too. And have you seen HSQL? It already provides a postgresql binding. -- Friendly, Lemmih ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
RE: [Haskell-cafe] GHC compilation with postres libs
From: Edwin Eyan Moragas [mailto:[EMAIL PROTECTED] -compiled Main.hsc with: $ hsc2hs -I/usr/local/pgsql/include Main.hsc all went well with this - tried compiling this way: $ ghc -o test -L/usr/local/pgsql/lib Main.hs Do you not also need the -l option? e.g. (wild guess, assuming library is libpg.so) $ ghc -o test -L/usr/local/pgsql/lib -lpg Main.hs Alistair. - * Confidentiality Note: The information contained in this message, and any attachments, may contain confidential and/or privileged material. It is intended solely for the person(s) or entity to which it is addressed. Any review, retransmission, dissemination, or taking of any action in reliance upon this information by persons or entities other than the intended recipient(s) is prohibited. If you received this in error, please contact the sender and delete the material from any computer. * ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] GHC compilation with postres libs
On Fri, 25 Feb 2005 15:22:28 +0100, Lemmih [EMAIL PROTECTED] wrote: On Fri, 25 Feb 2005 22:15:02 +0800, Edwin Eyan Moragas [EMAIL PROTECTED] wrote: Including header files isn't enough, you have to link with the libraries too. And have you seen HSQL? It already provides a postgresql binding. what is enough then? i have seen HSQL. the point of the exercise is to better equip myself with FFI. thanks for the response. kind regards eyan ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] GHC compilation with postres libs
On Fri, 25 Feb 2005 14:25:21 -, Bayley, Alistair [EMAIL PROTECTED] wrote: Do you not also need the -l option? e.g. (wild guess, assuming library is libpg.so) $ ghc -o test -L/usr/local/pgsql/lib -lpg Main.hs [EMAIL PROTECTED] $ ghc -o test -L/usr/local/pgsql/lib/ -lpg Main.hs compilation IS NOT required /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../../i486-slackware-linux/bin/ld: cannot find -lpg collect2: ld returned 1 exit status still no go. :-) thanks. kind regards, eyan ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] GHC compilation with postres libs
On Fri, 25 Feb 2005 22:38:32 +0800, Edwin Eyan Moragas [EMAIL PROTECTED] wrote: On Fri, 25 Feb 2005 14:25:21 -, Bayley, Alistair [EMAIL PROTECTED] wrote: Do you not also need the -l option? e.g. (wild guess, assuming library is libpg.so) $ ghc -o test -L/usr/local/pgsql/lib -lpg Main.hs My bad, it's libpq. so: $ ghc -o test -L/usr/local/pgsql/lib -lpq Main.hs works. thanks a bunch! :-) -- kind regards, eyan http://www.eyan.org ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
RE: [Haskell-cafe] GHC compilation with postres libs
From: Edwin Eyan Moragas [mailto:[EMAIL PROTECTED] [EMAIL PROTECTED] $ ghc -o test -L/usr/local/pgsql/lib/ -lpg Main.hs compilation IS NOT required /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../../i486-s lackware-linux/bin/ld: cannot find -lpg collect2: ld returned 1 exit status still no go. :-) thanks. Where is the library (the .so file) and what is it called? Can you show me the contents of /usr/local/pgsql/lib ? - * Confidentiality Note: The information contained in this message, and any attachments, may contain confidential and/or privileged material. It is intended solely for the person(s) or entity to which it is addressed. Any review, retransmission, dissemination, or taking of any action in reliance upon this information by persons or entities other than the intended recipient(s) is prohibited. If you received this in error, please contact the sender and delete the material from any computer. * ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Must be a FAQ - Can't make install Hugs98-Nov2003 on MacOSX 10.3.8
I'm sure this must be a FAQ, but I can't make install hugs98-Nov2003 on MacOS 10.3.8. The error message I get is: ... gcc -c -g -O2 machine.c machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1649: illegal expression, found `' machine.c:1673: illegal statement, missing `identifier' after `goto' machine.c:1673: syntax error, missing `;' after `*' machine.c:1677: illegal statement, missing `identifier' after `goto' machine.c:1677: syntax error, missing `;' after `*' machine.c:1681: illegal statement, missing `identifier' after `goto' machine.c:1681: syntax error, missing `;' after `*' machine.c:1685: illegal statement, missing `identifier' after `goto' machine.c:1685: syntax error, missing `;' after `*' machine.c:1689: illegal statement, missing `identifier' after `goto' machine.c:1689: syntax error, missing `;' after `*' machine.c:1694: illegal statement, missing `identifier' after `goto' machine.c:1694: syntax error, missing `;' after `*' machine.c:1698: illegal statement, missing `identifier' after `goto' machine.c:1698: syntax error, missing `;' after `*' machine.c:1707: illegal statement, missing `identifier' after `goto' machine.c:1707: syntax error, missing `;' after `*' machine.c:1715: illegal statement, missing `identifier' after `goto' machine.c:1715: syntax error, missing `;' after `*' machine.c:1729: illegal statement, missing `identifier' after `goto' machine.c:1729: syntax error, missing `;' after `*' machine.c:1738: illegal statement, missing `identifier' after `goto' machine.c:1738: syntax error, missing `;' after `*' machine.c:1742: illegal statement, missing `identifier' after `goto' machine.c:1742: syntax error, missing `;' after `*' machine.c:1748: illegal statement, missing `identifier' after `goto' machine.c:1748: syntax error, missing `;' after `*' machine.c:1756: illegal statement, missing `identifier' after `goto' machine.c:1756: syntax error, missing `;' after `*' machine.c:1759: illegal statement, missing `identifier' after `goto' machine.c:1759: syntax error, missing `;' after `*' machine.c:1763: illegal statement, missing `identifier' after `goto' machine.c:1763: syntax error, missing `;' after `*' machine.c:1771: illegal statement, missing `identifier' after `goto' machine.c:1771: syntax error, missing `;' after `*' machine.c:1791: illegal statement, missing `identifier' after `goto' machine.c:1791: syntax error, missing `;' after `*' machine.c:1814: illegal statement, missing `identifier' after `goto' machine.c:1814: syntax error, missing `;' after `*' cpp-precomp: warning: errors during smart preprocessing, retrying in basic mode ... What should I do? Thanks. Kaoru Hosokawa ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] YAWQ (Yet Another Wash Question)
John Goerzen [EMAIL PROTECTED] writes: Possible, but ugly. I have about 50 lines of code that has to go in-between, so I'd be duplicating it. And, if I tried to make it into just another function, I'd have the same problem, I believe (scoping) It's all much easier: as always, you just have to use template functions for all your pages. That's all you need ... :-) Here is a recipe how I typically structure my WASH applications: - First, I write down (html) code for all the web pages and abstract over all the varying parts (input fields, submit buttons, continuation pages, etc.). As result, I get (independent) template function for all the pages. Usually, each template function lives in a separate module/file. - In the end, I write a *controller* function that both generates all the different pages by filling the holes of the templates and also ties together all the consecutive pages. And that's all you need to solve your problem as well -- just use a template function twice! Below, you'll find a small web app that toggles between two varying input pages using the scheme I described above. -Matthias module Main where import CGI main = run controller -- controller controller :: CGI () controller = let input1 = tr $ td $ textInputField empty submit1 = \ h cont - submit h cont empty page1 = stepOneTemplate input1 submit1 page2 out2= \ t - text t submit2 = \ cont - submit0 cont empty page2 = stepTwoTemplate value out2 submit2 page3 input3 = empty submit3 = \ h cont - submit F0 cont empty page3 = stepOneTemplate input3 submit3 page4 out4= \ t - text No input, sorry! submit4 = \ cont - submit0 cont empty page4 = stepTwoTemplate (const undefined) out4 submit4 page1 in page1 -- page templates stepOneTemplate inputCode submitCode nextPage = do standardQuery Input Page $ table $ do do tr $ td $ text Hello! h - inputCode tr $ td $ text Press the button! tr $ td $ submitCode h nextPage stepTwoTemplate validationCode outputCode submitCode nextPage h = do let i = validationCode h standardQuery Result Page $ table $ do tr $ td $ text Your input was ... tr $ td $ outputCode i tr $ td $ submitCode nextPage -- Matthias Neubauer | Universität Freiburg, Institut für Informatik | tel +49 761 203 8060 Georges-Köhler-Allee 79, 79110 Freiburg i. Br., Germany | fax +49 761 203 8052 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Must be a FAQ - Can't make install Hugs98-Nov2003 on MacOSX 10.3.8
See the hugs-bugs archive: http://www.mail-archive.com/hugs-bugs@haskell.org/msg02815.html Malcolm Wallace wrote: The configure script is (wrongly) determining that the MacOS X C compiler does not support Floats/Doubles. Ideally, the autoconf magic which determined this setting should be fixed, but in the meantime, you can work around it by: (1) Edit src/config.h, replacing the line /* #undef HAVE_LIBM */ with #define HAVE_LIBM 1 (2) rm src/*.o (3) cd src; make Regards, Malcolm Hope this answers your question. Arthur On 25-feb-05, at 16:09, Kaoru Hosokawa wrote: I'm sure this must be a FAQ, but I can't make install hugs98-Nov2003 on MacOS 10.3.8. The error message I get is: ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] YAWQ (Yet Another Wash Question)
On Fri, Feb 25, 2005 at 04:15:55PM +0100, Matthias Neubauer wrote: standardQuery Input Page $ table $ do do tr $ td $ text Hello! h - inputCode tr $ td $ text Press the button! tr $ td $ submitCode h nextPage I like the idea, but... doesn't this still have a problem if inputCode creates multiple fields on the screen? That is, h would only hold the last one? -- John ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] how to avoid overlapping instance error?
Currently, the HAppS.DBMS lib requires the user to provide a Show instance for their table types. An example might be: instance (Show item) = Show (MyTable item) where showsPrec d table = showsPrec d $ Set.toList $ myTableSet table But the Table class itself defines a toSet function so I think I should be able to do this once for all Table instances: instance (Show item,Ord item, Table table item p) = Show (table item) where showsPrec d table = showsPrec d $ Set.toList $ toSet table But I get an error telling me I am overlapping with Show [a]. Since [] is not an instance of Table, I don't see why there should be an overlap. -Alex- __ S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] YAWQ (Yet Another Wash Question)
John Goerzen [EMAIL PROTECTED] writes: On Fri, Feb 25, 2005 at 04:15:55PM +0100, Matthias Neubauer wrote: standardQuery Input Page $ table $ do do tr $ td $ text Hello! h - inputCode tr $ td $ text Press the button! tr $ td $ submitCode h nextPage I like the idea, but... doesn't this still have a problem if inputCode creates multiple fields on the screen? That is, h would only hold the last one? That's what F0, F1, F2, and friends are for. You use them to wrap multiple handles into a single object that you then pass to a submit button. E.g., my example, now with two buttons on the first step, looks as follows ... controller :: CGI () controller = let input1 = do h1 - tr $ td $ textInputField empty h2 - tr $ td $ textInputField empty return (F2 h1 h2) submit1 = \ h cont - submit h cont empty page1 = stepOneTemplate input1 submit1 page2 vali2 = \ (F2 h1 h2) - value h1 ++ and ++ value h2 out2= \ t - text t submit2 = \ cont - submit0 cont empty page2 = stepTwoTemplate vali2 out2 submit2 page3 ... The templates and all the rest stays unchanged. -Matthias -- Matthias Neubauer | Universität Freiburg, Institut für Informatik | tel +49 761 203 8060 Georges-Köhler-Allee 79, 79110 Freiburg i. Br., Germany | fax +49 761 203 8052 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Bound threads
I'm trying to understand the semantics and implementation of bound threads basing on the conc-ffi paper and others. Since the main thread is bound, and unbound threads are never executed on an OS thread which has some Haskell thread bound, this would imply that when the main thread spawns a Haskell thread and they synchronize a lot with each other using MVars, the synchronization needs OS-thread synchronization - the threads will not execute on a the same OS thread. If I understand this correctly, doesn't it impose a significant overhead compared to synchronizing two unbound threads? If not, what am I missing? -- __( Marcin Kowalczyk \__/ [EMAIL PROTECTED] ^^ http://qrnik.knm.org.pl/~qrczak/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Must be a FAQ - Can't make install Hugs98-Nov2003 on MacOSX 10.3.8
Arthur Baars wrote: See the hugs-bugs archive: http://www.mail-archive.com/hugs-bugs@haskell.org/msg02815.html Malcolm Wallace wrote: The configure script is (wrongly) determining that the MacOS X C compiler does not support Floats/Doubles. Ideally, the autoconf magic which determined this setting should be fixed, [...] Hmmm, I'm not sure if the autoconf magic has been fixed. Does it work with Hugs from CVS HEAD? If not, could somebody please send a patch for it or at least a log + all involved config.logs? I don't have access to a Mac... Cheers, S. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Must be a FAQ - Can't make install Hugs98-Nov2003 on MacOSX 10.3.8
Hi, The hugs98-20041101 snapshot builds without trouble on OS X 10.3.8. (It's the one I use in darwinports for hugs98-devel). Our standard DP hugs98 is still the Nov2002 version, since I was never able to get the Nov2003 release to build properly. (If your not familiar with darwinports, see http://darwinports.opendarwin.org. It is in some ways similar to fink, but is intended to be a more flexible building/ packaging infrastructure.) If you do decide to set up darwinports on your system, you can build the 20041101 snapshot from source by typing sudo port install hugs98-devel Remember to add the darwinports binary directory (/opt/local/bin by default) to your path. If you want to watch the progress of the build, use sudo port -dv install hugs98-devel (the -dv option gives you verbose debugging, and will let you see all of the output from the build). Best Wishes, Greg On Feb 25, 2005, at 4:56 PM, Sven Panne wrote: Arthur Baars wrote: See the hugs-bugs archive: http://www.mail-archive.com/hugs-bugs@haskell.org/msg02815.html Malcolm Wallace wrote: The configure script is (wrongly) determining that the MacOS X C compiler does not support Floats/Doubles. Ideally, the autoconf magic which determined this setting should be fixed, [...] Hmmm, I'm not sure if the autoconf magic has been fixed. Does it work with Hugs from CVS HEAD? If not, could somebody please send a patch for it or at least a log + all involved config.logs? I don't have access to a Mac... Cheers, S. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Compiling GHC from CVS
I'm having trouble compiling GHC from CVS. Make seems to be looping infinitely while compiling the stage1 compiler. Make -d gives me: Pruning file 'main/Config.hs' On and on and on. The commands I used to make (from the fptools) directory were: autoreconf ./configure --prefix=/Users/arjun/local/fptools Make I'm using Mac OS X 10.3.8 with GHC 6.2.1. -Arjun ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Compiling GHC from CVS
I had this happen to me a few weeks ago; the fix was to upgrade make using fink. Right now I have v.3.79.1; which version do you have? -Judah On Fri, 25 Feb 2005 16:51:58 -0600, Arjun Guha [EMAIL PROTECTED] wrote: I'm having trouble compiling GHC from CVS. Make seems to be looping infinitely while compiling the stage1 compiler. Make -d gives me: Pruning file 'main/Config.hs' On and on and on. The commands I used to make (from the fptools) directory were: autoreconf ./configure --prefix=/Users/arjun/local/fptools Make I'm using Mac OS X 10.3.8 with GHC 6.2.1. -Arjun ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Compiling GHC from CVS
Thanks, that worked. I had version 3.79. I'm now using version 3.80 from ftp.gnu.org. However, I've picked up a new error: /tmp/ghc6277.s:54636:Fixup of 71208 too large for field width of 16 bits /tmp/ghc6277.s:54634:Fixup of 71216 too large for field width of 16 bits ghc: 751359104 bytes, 32 GCs, 10426256/26917324 avg/max bytes residency (6 samples), 85M in use, 0.01 INIT (0.01 elapsed), 11.96 MUT (19.64 elapsed), 4.43 GC (5.48 elapsed) :ghc make[2]: *** [stage1/prelude/PrimOp.o] Error 1 make[1]: *** [all] Error 1 make[1]: Leaving directory `/Users/arjun/src/fptools/ghc' make: *** [build] Error 1 Does anybody have any ideas? -Arjun ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Compiling GHC from CVS
Sorry if this is a duplicate... I fixed that problem, thanks. However, I now have another one: /tmp/ghc6277.s:54636:Fixup of 71208 too large for field width of 16 bits /tmp/ghc6277.s:54634:Fixup of 71216 too large for field width of 16 bits ghc: 751359104 bytes, 32 GCs, 10426256/26917324 avg/max bytes residency (6 samples), 85M in use, 0.01 INIT (0.01 elapsed), 11.96 MUT (19.64 elapsed), 4.43 GC (5.48 elapsed) :ghc make[2]: *** [stage1/prelude/PrimOp.o] Error 1 make[1]: *** [all] Error 1 make[1]: Leaving directory `/Users/arjun/src/fptools/ghc' make: *** [build] Error 1 Does anybody have any ideas? -Arjun ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Bound threads
I'm trying to understand the semantics and implementation of bound threads basing on the conc-ffi paper and others. Since the main thread is bound, and unbound threads are never executed on an OS thread which has some Haskell thread bound, this would imply that when the main thread spawns a Haskell thread and they synchronize a lot with each other using MVars, the synchronization needs OS-thread synchronization - the threads will not execute on a the same OS thread. Correct. If I understand this correctly, doesn't it impose a significant overhead compared to synchronizing two unbound threads? If not, what am I missing? Yes, it does impose more overhead than synchronizing two unbound threads. Depending on how high your demands are and on how good your operating system is at OS-thread synchronization, it might or might not be significant. We need the main thread to be bound because the main thread is special for some libraries (Apple's Carbon and Cocoa libraries, and, to a lesser extent, Microsoft's Win32). Some calls to these libraries absolutely have to be executed in the main thread and not in any other thread. So treating the call to main the same way as other calls into Haskell code (using a bound Haskell thread) was the nicest solution to this; the performance disadvantage you pointed out can be easily worked around by just doing _all_ the work in unbound threads (and having the main thread just wait for the unbound threads to terminate). Hope that answers your question, Wolfgang ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe