Re: [Haskell-cafe] Re: databases in Haskell type-safety
2009/1/30 guenni68 red...@fedoms.com: Hi Alistair, yes, please, pretty please do! I really am desparate, I'm running into so much trouble because I have to export to MS-Access and I'm a little out of luck with HDBC. HDBC works like a charm unless you have to use MS-Access. Hmm... it's not likely you'll have much success with Takusen either, as you will also have to use the ODBC bindings for MS Access, and I have not tested this combination. Perhaps you can consider an alternative route for export, like CSV? Alistair ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
Hi Austin, could you post the patch please? So far there is no updated version of takusen that builds with ghc 6.10 Günther On 3 Jan., 11:25, Austin Seipp mad@gmail.com wrote: Excerpts from Gour's message of Sat Jan 03 03:48:44 -0600 2009: Hi! I'd like to use sqlite3 as application storage in my haskell project... Browsing the available database options in Haskell it seems that: a) HSQL is dead (hackage reports build-failure with 6.8 6.10) b) haskelldb is also not in a good shape - build fails with 6.8 6.10 For Haskell-newbie as myself, it looks that haskelldb is the one which provide(ed)s the most secure API (I was reading draft paper about MetaHDBC but, apparently, the type inference support in open-source databases is poor and that's why, according to the author This is unfortunately as it makes MetaHDBC a lot less valuable. What remains is: c)Takusenwhich is also not up-to-date (it fails with 6.10) and d) HDBC and sqlite bindings which are the only packages which build with 6.10. Have you tried the simple sqlite3 bindings available?http://hackage.haskell.org/cgi-bin/hackage-scripts/package/sqlite I'm not familiar withTakusenwhich says: Takusen'sunique selling point is safety and efficiency... and I would appreciate if someone could shed some more light to its 'safety' and the present status? Takusenis based on the (unique) concept of a left-fold enumerator. Having a left-fold interface guarantees timely (nearly perfect, really) deallocation of resources while still having the benefits of a 'lazy' stream. This interface has (as shown by Oleg and others) proven to be very efficient in a number of cases as well as favorable for many. The idea is very novel, and truly worth exploring if you ask me. For more information about left-fold enumerators andtakusen, see here: http://okmij.org/ftp/papers/LL3-collections-enumerators.txthttp://okmij.org/ftp/Haskell/fold-stream.lhshttp://okmij.org/ftp/Haskell/misc.html#takusen NB: I have *just* (about 5 minutes ago) sent in a patch fortakusen to get it to build on GHC 6.10.1 to Oleg. Hopefully an updated version will appear on hackage in the next few days. Austin ___ Haskell-Cafe mailing list haskell-c...@haskell.orghttp://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] Re: databases in Haskell type-safety
Excerpts from Guenther Schmidt's message of Thu Jan 29 07:42:51 -0600 2009: Hi Austin, could you post the patch please? So far there is no updated version of takusen that builds with ghc 6.10 Günther Hi Gunther, I recently got an email back from Alstair Bayley who is one of the Takusen authors, and they said they are preparing a GHC 6.10 release (I was *not* the only person to submit a patch for ghc 6.10 building) but it may take a little while. You might want to get in contact with Alstair and ask what the current progress is. Austin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: databases in Haskell type-safety
I recently got an email back from Alstair Bayley who is one of the Takusen authors, and they said they are preparing a GHC 6.10 release (I was *not* the only person to submit a patch for ghc 6.10 building) but it may take a little while. You might want to get in contact with Alstair and ask what the current progress is. I've got it building (tests pass etc) but the haddock docs won't build at present (with ghc-6.10.1). I want to get these little problems sorted out before I package up the next release. If you're desperate then I could push what I have so far into the repo and you could build from that. Alistair ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
Hi Alistair, yes, please, pretty please do! I really am desparate, I'm running into so much trouble because I have to export to MS-Access and I'm a little out of luck with HDBC. HDBC works like a charm unless you have to use MS-Access. Günther On 29 Jan., 22:24, Alistair Bayley alist...@abayley.org wrote: I recently got an email back from Alstair Bayley who is one of the Takusen authors, and they said they are preparing a GHC 6.10 release (I was *not* the only person to submit a patch for ghc 6.10 building) but it may take a little while. You might want to get in contact with Alstair and ask what the current progress is. I've got it building (tests pass etc) but the haddock docs won't build at present (with ghc-6.10.1). I want to get these little problems sorted out before I package up the next release. If you're desperate then I could push what I have so far into the repo and you could build from that. Alistair ___ Haskell-Cafe mailing list haskell-c...@haskell.orghttp://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] Re: databases in Haskell type-safety
On Wed, 2009-01-14 at 10:19 +0800, Xie Hanjian wrote: * John Goerzen jgoer...@complete.org [2009-01-13 12:37:45 -0600]: To anyone annoyed with Haskell's library install process: you have no idea how good you have it unless you've tried Ruby and rails. Disagree. Rubygems is fairly easy to use. At lease, I can guess how to uninstall a package by trying 'gem uninstall foobar', but failed by trying 'cabal uninstall/remove foobar' :-) It's a fair point. Patches gratefully accepted! :-) Duncan ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
Mauricio No. Only sqlite3_exec with INSERT, SELECT stuff, Mauricio and saving everything that needs structure in pseudo-xml Mauricio strings. Not that efficient, but easy to change to blobs when Mauricio everything is ready and tested. I see...I'm thinking to maybe store only paths for bigger BLOBs, but still there is need to store smaller (thumbnails pics) ones... You can always uuencode the pictures. Package 'dataenc' seems nice, although I have not used it. Best, Maurício ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
Mauricio == Mauricio briqueabra...@yahoo.com writes: Mauricio You can always uuencode the pictures. Package 'dataenc' seems Mauricio nice, although I have not used it. Thanks. It looks like a nice 'workaround' with base64 encoding. Sincerely, Gour -- Gour | Zagreb, Croatia | GPG key: C6E7162D pgp6T9InIqFzU.pgp Description: PGP signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
John == John Goerzen jgoer...@complete.org writes: John That's great. Even better if accompanied by a patch ;-) Heh, one of the things which prevents me advancing with my own Haskell project is lack of enough skills to provide bindings for one C-lib and here I see the same pattern...It looks I have to cross it over :-) I'll e.g. open ticket for BLOB support :-D John Of course :-) I did it - have you seen the notice about problems with HDBC-forums? John Yes, I'm quite aware of that. Just not *my* particular ones ;-) OK. I'll try to, at least, come with some concrete proposal... Sincerely, Gour -- Gour | Zagreb, Croatia | GPG key: C6E7162D pgp4XCOSKVTcP.pgp Description: PGP signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
Mauricio == Mauricio briqueabra...@yahoo.com writes: Mauricio I've been doing a lot of low level sqlite3 lately (it's going Mauricio to be on a hackage package as soon as I finish my current Mauricio work). Have you done any work with BLOBs? Mauricio As long as I clearly isolate and test the marshalling of my Mauricio data to SQL and back, my (personal, probably different from Mauricio yours) experience using just sqlite3_exec has never got me Mauricio into trouble. Thank you for your input. Sincerely, Gour -- Gour | Zagreb, Croatia | GPG key: C6E7162D pgp1VtGIKB8bM.pgp Description: PGP signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: databases in Haskell type-safety
Gour wrote: John == John Goerzen jgoer...@complete.org writes: John That's great. Even better if accompanied by a patch ;-) Heh, one of the things which prevents me advancing with my own Haskell project is lack of enough skills to provide bindings for one C-lib and here I see the same pattern...It looks I have to cross it over :-) I'll e.g. open ticket for BLOB support :-D John Of course :-) I did it - have you seen the notice about problems with HDBC-forums? Yes. I am thoroughly displeased with Ruby on Rails at the moment. It is less maintainable than a network of DOS boxes. There are a host of mysterious crashes in Redmine at the moment -- including one where pulling up the page for one specific bug (but none others) crashes the server. I could upgrade Redmine, but that requires a Ruby stack that is partly newer than what's in Debian, and the upgrade for that process appears to succeed, but then fails in mysterious ways at the end. To anyone annoyed with Haskell's library install process: you have no idea how good you have it unless you've tried Ruby and rails. -- John ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
Mauricio I've been doing a lot of low level sqlite3 lately (it's going Mauricio to be on a hackage package as soon as I finish my current Mauricio work). Have you done any work with BLOBs? No. Only sqlite3_exec with INSERT, SELECT stuff, and saving everything that needs structure in pseudo-xml strings. Not that efficient, but easy to change to blobs when everything is ready and tested. Maurício ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
Johannes == Johannes Waldmann waldm...@imn.htwk-leipzig.de writes: Johannes see Johannes http://article.gmane.org/gmane.comp.lang.haskell.libraries/10490 Thanks. Is it just a 'fix' or HSQL will be properly maintained as well? Sincerely, Gour -- Gour | Zagreb, Croatia | GPG key: C6E7162D pgpo8XJalZryl.pgp Description: PGP signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
Mauricio == Mauricio briqueabra...@yahoo.com writes: Mauricio No. Only sqlite3_exec with INSERT, SELECT stuff, Mauricio and saving everything that needs structure in pseudo-xml Mauricio strings. Not that efficient, but easy to change to blobs when Mauricio everything is ready and tested. I see...I'm thinking to maybe store only paths for bigger BLOBs, but still there is need to store smaller (thumbnails pics) ones... Sincerely, Gour -- Gour | Zagreb, Croatia | GPG key: C6E7162D pgp4nqCuaRKrq.pgp Description: PGP signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
Johannes http://article.gmane.org/gmane.comp.lang.haskell.libraries/10490 Is it just a 'fix' or HSQL will be properly maintained as well? Just a fix for Setup.hs and *.cabal, and no changes to the real code (w.r.t. version -1.7 presently available from hackage) J.W. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: databases in Haskell type-safety
* John Goerzen jgoer...@complete.org [2009-01-13 12:37:45 -0600]: Gour wrote: John == John Goerzen jgoer...@complete.org writes: John That's great. Even better if accompanied by a patch ;-) Heh, one of the things which prevents me advancing with my own Haskell project is lack of enough skills to provide bindings for one C-lib and here I see the same pattern...It looks I have to cross it over :-) I'll e.g. open ticket for BLOB support :-D John Of course :-) I did it - have you seen the notice about problems with HDBC-forums? Yes. I am thoroughly displeased with Ruby on Rails at the moment. It is less maintainable than a network of DOS boxes. There are a host of mysterious crashes in Redmine at the moment -- including one where pulling up the page for one specific bug (but none others) crashes the server. I could upgrade Redmine, but that requires a Ruby stack that is partly newer than what's in Debian, and the upgrade for that process appears to succeed, but then fails in mysterious ways at the end. Redmine requires only ruby 1.8.6 and rails 2.1.2, which are both stable releases, so I think an upgrade of your ruby stack is very reasonable. To anyone annoyed with Haskell's library install process: you have no idea how good you have it unless you've tried Ruby and rails. Disagree. Rubygems is fairly easy to use. At lease, I can guess how to uninstall a package by trying 'gem uninstall foobar', but failed by trying 'cabal uninstall/remove foobar' :-) Jan -- John ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- jan=callcc{|jan|jan};jan.call(jan) pgpW056mtnU2t.pgp Description: PGP signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: databases in Haskell type-safety
Xie Hanjian wrote: * John Goerzen jgoer...@complete.org [2009-01-13 12:37:45 -0600]: Redmine requires only ruby 1.8.6 and rails 2.1.2, which are both stable releases, so I think an upgrade of your ruby stack is very reasonable. It also requires a newer version of rake than is in Debian. Not a problem as such, but you start working with gem install commands (and their friends), and eventually find that after spending 30 minutes installing/upgrading stuff, it bombs at the very end saying that some component needed a newer version of something than is available, and it can't install that component, so it's left the server hosed -- too new to run the old version, not ready to accept the new. Great. It ought to have checked the dependencies *before* messing with my system. And it ought not to have failed mysteriously anyhow. To anyone annoyed with Haskell's library install process: you have no idea how good you have it unless you've tried Ruby and rails. Disagree. Rubygems is fairly easy to use. At lease, I can guess how to It is completely poorly documented on how to gem install something when you don't have root. The gem(1) manpage is a joke. The online help doesn't help much either. Turns out there is a magic combination of undocumented environment variables and documented command-line options that does it. Or at least, I *thought* it does it. The other problem about Rails is that code and data are inseparably mixed. It will be just about impossible to install a rails app as a Debian package because it needs write access to its install directory, and this stuff is not easily configured to use /usr and /etc as appropriate. Anyhow, this is a Haskell list, so I'm not going to rant any more about this here. I can give you details off-list if you like. It's touched a nerve lately. -- John ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: databases in Haskell type-safety
* John Goerzen jgoer...@complete.org [2009-01-13 20:53:40 -0600]: Xie Hanjian wrote: * John Goerzen jgoer...@complete.org [2009-01-13 12:37:45 -0600]: Redmine requires only ruby 1.8.6 and rails 2.1.2, which are both stable releases, so I think an upgrade of your ruby stack is very reasonable. It also requires a newer version of rake than is in Debian. Not a problem as such, but you start working with gem install commands (and their friends), and eventually find that after spending 30 minutes installing/upgrading stuff, it bombs at the very end saying that some component needed a newer version of something than is available, and it can't install that component, so it's left the server hosed -- too new to run the old version, not ready to accept the new. Great. It ought to have checked the dependencies *before* messing with my system. And it ought not to have failed mysteriously anyhow. To anyone annoyed with Haskell's library install process: you have no idea how good you have it unless you've tried Ruby and rails. Disagree. Rubygems is fairly easy to use. At lease, I can guess how to It is completely poorly documented on how to gem install something when you don't have root. The gem(1) manpage is a joke. The online help doesn't help much either. Turns out there is a magic combination of undocumented environment variables and documented command-line options that does it. Or at least, I *thought* it does it. The other problem about Rails is that code and data are inseparably mixed. It will be just about impossible to install a rails app as a Debian package because it needs write access to its install directory, and this stuff is not easily configured to use /usr and /etc as appropriate. From your description it seems debian's rails stack mess you up, not ruby/rails itself. And I think install a rails app as a debian package is not a good idea. Anyhow, this is a Haskell list, so I'm not going to rant any more about this here. I can give you details off-list if you like. It's touched a ok :-| Jan nerve lately. -- John ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- jan=callcc{|jan|jan};jan.call(jan) pgpZecDhhLwJO.pgp Description: PGP signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
John == John Goerzen jgoer...@complete.org writes: Hello John, John I would say that database interactions are typically limited to a John small part of code. In small programs, I generally have a DB John module that does the queries, and marshals everything to/from the John rich Haskell types I define. Any possible type issues are thus John constrained to that small part of code. That's right. However, I envision application for which a significant part would require querying (kind of research base for querying common stuff in thousands of records.) John HDBC is a low-level abstraction, which can be used on its own or, John of course, as a layer underlying HaskellDB or some such. I do not John dispute the use of tools such as HaskellDB or others that try to John automate the business of representing a database's schema -- and John queries against it -- using a language's type system. There are a John lot of these systems in a lot of languages. I've used some of John them. Have you maybe tried Takusen (HaskellDB which you reference above does not seem very much alive)? John And, almost universally, they annoy me. I find it takes longer to John write code with them than without, and often they have issues John representing some query that I know I can do easily in SQL but John maybe can't as easy in the toolkit. As an example, when I last John looked at HaskellDB in 2005, I found that it was impossible to do John a SELECT without a DISTINCT [1]. There are many situations where John such a thing is necessary, so I had to discard it for my projects. Hmm, that's interesting to hear...I'm curious what could be reply from Takusen devs... John HDBC is more similar to Perl's DBI or Python's DB-API (or perhaps John a sane version of JDBC). It is a standard interface to SQL RDBMS John engines that provides some tools for marshaling data back and John forth, but generally leaves you to construct the queries. Well, that's not too bad... John So, this was not intended as an HDBC commercial, just more of a John braindump as to why I wrote it. Hope it helps. Sure, it helps. Thanks a lot for your input. Otoh, I believe that, considering it is mentioned in RWH, HDBC does not need much commercial, just contrary, you can expect new feature requests From the new army of Haskell developers cultivated by the book :-) I'll e.g. open ticket for BLOB support :-D John HDBC is actively used in mission-critical applications where I John work. We use both the PostgreSQL and ODBC backends in production. John We even use the ODBC backend along with the particularly nefarious John ODBC interface for the Progress 4GL database. I use the Sqlite3 John backend quite a bit in my own personal projects, such as hpodder John and twidge. Database abstraction offered by HDBC is very nice feature allowing one to change back-end driver without too much hassle, so I'll try to investigate a bit about possible BLOB support on HDBC-level. It's definitely something used in real-world databases... Sincerely, Gour -- Gour | Zagreb, Croatia | GPG key: C6E7162D pgpZy5hZlU0OF.pgp Description: PGP signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: databases in Haskell type-safety
Gour wrote: John HDBC is a low-level abstraction, which can be used on its own or, John of course, as a layer underlying HaskellDB or some such. I do not John dispute the use of tools such as HaskellDB or others that try to John automate the business of representing a database's schema -- and John queries against it -- using a language's type system. There are a John lot of these systems in a lot of languages. I've used some of John them. Have you maybe tried Takusen (HaskellDB which you reference above does not seem very much alive)? No, I haven't, unfortunately. Otoh, I believe that, considering it is mentioned in RWH, HDBC does not need much commercial, just contrary, you can expect new feature requests From the new army of Haskell developers cultivated by the book :-) That's great. Even better if accompanied by a patch ;-) I'll e.g. open ticket for BLOB support :-D Of course :-) Database abstraction offered by HDBC is very nice feature allowing one to change back-end driver without too much hassle, so I'll try to investigate a bit about possible BLOB support on HDBC-level. That would be wonderful. It's definitely something used in real-world databases... Yes, I'm quite aware of that. Just not *my* particular ones ;-) -- John ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
However options in d) do not offer, afaik, type-safety which is emblem of Haskell language, so I wonder how much this could be the problem for real-world usage? I've been doing a lot of low level sqlite3 lately (it's going to be on a hackage package as soon as I finish my current work). As long as I clearly isolate and test the marshalling of my data to SQL and back, my (personal, probably different from yours) experience using just sqlite3_exec has never got me into trouble. Best, Maurício ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
[on hsql] Still, it would be nice to present some info 'cause web site still shows 1.7 from Dec '05 as the latest release see http://article.gmane.org/gmane.comp.lang.haskell.libraries/10490 J.W. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
Henning == schlepp...@henning-thielemann.de writes: Henning No, it is maintained by frede...@ofb.net . I have also Henning contributed Oracle/OCI code a half year ago. Oops, I stand corrected...nice to hear. Still, it would be nice to present some info 'cause web site still shows 1.7 from Dec '05 as the latest release :-( Sincerely, Gour -- Gour | Zagreb, Croatia | GPG key: C6E7162D pgpb32PgU4X2z.pgp Description: PGP signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: databases in Haskell type-safety
Austin == Austin Seipp mad@gmail.com writes: Austin Have you tried the simple sqlite3 bindings available? Austin http://hackage.haskell.org/cgi-bin/hackage-scripts/package/sqlite Not (yet), but those are the one I mentioned (besides HDBC) under d) ;) Austin Takusen is based on the (unique) concept of a left-fold Austin enumerator. Having a left-fold interface guarantees timely Austin (nearly perfect, really) deallocation of resources while still Austin having the benefits of a 'lazy' stream. This interface has (as Austin shown by Oleg and others) proven to be very efficient in a Austin number of cases as well as favorable for many. The idea is very Austin novel, and truly worth exploring if you ask me. Thank you very much. I went through the docs for which you provided some references - I cannot claim I understood everything, but it sounds/looks quite interesting and worth exploring. Is there any simple tutorial about using Takusen available somewhere? Austin NB: I have *just* (about 5 minutes ago) sent in a patch for Austin takusen to get it to build on GHC 6.10.1 to Oleg. Hopefully an Austin updated version will appear on hackage in the next few days. Great news! Sincerely, Gour -- Gour | Zagreb, Croatia | GPG key: C6E7162D pgpWbjHPU1bkV.pgp Description: PGP signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe