From dons at galois.com Fri Jan 2 15:27:24 2009 From: dons at galois.com (Don Stewart) Date: Fri Jan 2 15:18:58 2009 Subject: [Haskell] #haskell IRC channel reaches 600 users Message-ID: <20090102202724.GA3953@scytale.galois.com> A small announcement :) 7 years after its inception, under the guiding hand of Shae Erisson (aka shapr), the #haskell IRC channel[1] on freenode has reached 600 concurrent users! It's now in the top 3 language channels by size. To chart the growth, we can note that the channel was founded in late 2001, and had slow growth till 2006, reaching 200 users in January of that year. Since then growth in the user base has been far more rapid, reaching 300 users in Dec 2006, 400 users in August 2007, 500 users by July 2008, and 600 on January 2, 2009. This puts the channel at the 7th largest community of the 7000 freenode channels, and in the top 3 language communities. For comparision, a sample of the state of the other language communities, with comments comapred to their status a year ago: #php 612 #python 604 > #haskell 602 -- up 4 ##c++ 558 ##c 506 -- down 1 #perl 502 -- down 3 #ruby-lang 288 -- down #lisp 264 ##javascript 241 #erlang 146 -- unchanged #perl6 129 -- unchanged #scheme 123 -- down #lua 102 -- unchanged #clojure 78 #ocaml 70 -- unchanged You can see the growth of the channel over here: http://haskell.org/haskellwiki/IRC_channel If you've not dropped by the channel yet, feel free to come and chat, and toss around some lambdas! :) Cheers, Don From byorgey at seas.upenn.edu Sat Jan 3 13:20:48 2009 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Sat Jan 3 13:12:34 2009 Subject: [Haskell] Haskell Weekly News: Issue 99 - January 3, 2009 Message-ID: <20090103182048.GA9948@seas.upenn.edu> --------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20090103 Issue 99 - January 03, 2009 --------------------------------------------------------------------------- Welcome to issue 99 of HWN, a newsletter covering developments in the [1]Haskell community. Happy new year to all! May 2009 be a year full of joy, family, friends, professional success, much Haskell hacking, and a minimal number of rabid weasels. Just in case. Announcements #haskell IRC channel reaches 600 users. Don Stewart [2]announced that 7 years after its inception, under the guiding hand of Shae Erisson (aka shapr), the [3]#haskell IRC channel on freenode has reached 600 concurrent users! citeproc-hs-0.2. andrea rossato [4]announced the release of [5]citeproc-hs-0.2, a Haskell implementation of the Citation Style Language, which adds a Bibtex like citation and bibliographic formatting and generation facility to [6]pandoc. This version adds support for citation collapsing, a wrapper around [7]hs-bibutils, and some [8]API documentation. hs-bibutils-0.1. andrea rossato [9]announced the first release of [10]hs-bibutils, Haskell bindings to Chris Putnam's [11]bibutils. Bibutils is a library and a set of bibliographic utilities to interconvert between various bibliography database formats using a common MODS-format XML intermediate. Haskell koans. Gwern Branwen [12]issued an RFK (Request for [13]Koans), following the success of his CFH (Call for [14]Haiku). [ANN] Haskell web server + wiki: salvia-0.0.4 + orchid-0.0.6. Sebastiaan Visser [15]announced the release of three new packages: [16]salvia, a lightweight modular web server framework; [17]orchid, a(nother) wiki written in Haskell, using Darcs as a versioning back-end and Salvia as the application server; and [18]orchid-demo, a simple demo application using Salvia and Orchid to serve an example darcs repository. You can play around with an [19]online demo. gitit-0.4.1, recaptcha-0.1. John MacFarlane [20]announced the release of [21]gitit-0.4.1, a wiki program that stores pages in a git repository. This release adds support for (optional) captchas, using the reCAPTCHA service. The reCAPTCHA code has been packaged as a separate library on Hackage, [22]recaptcha. monte-carlo-0.2, gsl-random-0.2.3. Patrick Perry [23]announced the release of a new version of the [24]monte-carlo package. The new version includes a more general type class, MonadMC, which allows all the functions to work in both MC and MCT monads; functions to sample from discrete distributions, and functions to sample subsets. There is also a [25]quick tutorial. Reading group for Programming Collective Intelligence. Creighton Hogg [26]announced that he would like to start a small group for the O'Reilly book [27]Programming Collective Intelligence, to work through translating some of the examples to Haskell. Email Creighton if you are interested in participating. Maintaining laziness. Henning Thielemann [28]announced that he has written a [29]tutorial on how to make functions lazy and how to test whether they are actually lazy. Request for feedback: Understanding Haskell Monads. Ertugrul Soeylemez [30]requested feedback on a new [31]monad tutorial. Discussion How do we decide on the new logo?. Fritz Ruehr began a [32]discussion of how to go about choosing a winner of the [33]Great 2009 Haskell Logo Contest. Weigh in if you care! Jobs Two Positions as Associate Professor in Software Engineering at Chalmers University. Koen Claessen [34]announced the availability of [35]two positions as Associate Professor at Chalmers University in Gothenburg, Sweden, within the division of Software Engineering and Technology at the department of Computer Science and Engineering. The application deadline is January 12, 2009. Blog noise [36]Haskell news from the [37]blogosphere. * GHC / OpenSPARC Project: [38]Bootstrapping. * Dan Piponi (sigfpe): [39]Rewriting Monadic Expressions with Template Haskell. * GHC / OpenSPARC Project: [40]Fighting dependencies. * GHC / OpenSPARC Project: [41]A new year and a new project. * Alson Kemp: [42]2009: The Year Of Hackage. * Patrick Perry: [43]Monte Carlo Poker Odds. * Joachim Breitner: [44]Handling explicit and implicit recursion in Haskell data. * Luke Palmer: [45]Domain Convergence. * Eric Kow (kowey): [46]riot is almost a Haskell mail client. * John Goerzen (CosmicRay): [47]Real World Haskell update. * Alson Kemp: [48]A Plea For "cabal install". * Alson Kemp: [49]Cyptol on Slashdot. Quotes of the Week * lilac: how do I see the number of reductions required to calculate something? bohdan: the usual method is to ask Cale to reduce it by hand :) * conal: If it's purely functional, how do you *do* anything? You don't ;-) * ddarius: The opposite ends of CS meet in the Haskell world. * EvilTerran: forcedYet :: a -> Bool; forcedYet x = x `seq` True -- :P * bmh: I dream in folds. One day I'll dream in monads. * sclv: dreaming is a monad. About the Haskell Weekly News New editions are posted to [50]the Haskell mailing list as well as to [51]the Haskell Sequence and [52]Planet Haskell. [53]RSS is also available, and headlines appear on [54]haskell.org. To help create new editions of this newsletter, please see the information on [55]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [56]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49824 3. http://haskell.org/haskellwiki/IRC_channel 4. http://article.gmane.org/gmane.comp.lang.haskell.general/16709 5. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/citeproc-hs 6. http://johnmacfarlane.net/pandoc/ 7. http://code.haskell.org/hs-bibutils/ 8. http://code.haskell.org/citeproc-hs/docs/ 9. http://article.gmane.org/gmane.comp.lang.haskell.general/16708 10. http://code.haskell.org/hs-bibutils/ 11. http://www.scripps.edu/~cdputnam/software/bibutils/ 12. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49774 13. http://haskell.org/haskellwiki/Koans 14. http://haskell.org/haskellwiki/Haiku 15. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49759 16. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/salvia 17. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/orchid 18. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/orchid-demo 19. http://funct.org/wiki/] 20. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49747 21. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/gitit 22. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/recaptcha 23. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49739 24. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/monte-carlo 25. http://quantile95.com/2008/12/31/monte-carlo-poker-odds/ 26. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49716 27. http://tinyurl.com/7x4rga 28. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49655 29. http://www.haskell.org/haskellwiki/Maintaining_laziness 30. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49546 31. http://ertes.de/articles/monads.html 32. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/49833 33. http://haskell.org/haskellwiki/Haskell_logos/New_logo_ideas 34. http://article.gmane.org/gmane.comp.lang.haskell.general/16712 35. http://www.chalmers.se/cse/EN/news/vacancies/positions/two-positions-as 36. http://planet.haskell.org/ 37. http://haskell.org/haskellwiki/Blog_articles 38. http://ghcsparc.blogspot.com/2009/01/building.html 39. http://sigfpe.blogspot.com/2009/01/rewriting-monadic-expressions-with.html 40. http://ghcsparc.blogspot.com/2009/01/in-in-morning.html 41. http://ghcsparc.blogspot.com/2008/12/alright.html 42. http://www.alsonkemp.com/haskell/2009-the-year-of-hackage/ 43. http://quantile95.com/2008/12/31/monte-carlo-poker-odds/ 44. https://www.joachim-breitner.de/blog/archives/316-Handling-explicit-and-implicit-recusion-in-Haskell-data.html 45. http://lukepalmer.wordpress.com/2008/12/31/domain-convergence/ 46. http://koweycode.blogspot.com/2008/12/riot-is-almost-haskell-mail-client.html 47. http://changelog.complete.org/archives/861-real-world-haskell-update-2 48. http://www.alsonkemp.com/haskell/a-plea-for-cabal-install/ 49. http://www.alsonkemp.com/haskell/cyptol-on-slashdot/ 50. http://www.haskell.org/mailman/listinfo/haskell 51. http://sequence.complete.org/ 52. http://planet.haskell.org/ 53. http://sequence.complete.org/node/feed 54. http://haskell.org/ 55. http://haskell.org/haskellwiki/HWN 56. http://code.haskell.org/~byorgey/code/hwn/ From jeremy.odonoghue at gmail.com Sun Jan 4 10:19:19 2009 From: jeremy.odonoghue at gmail.com (Jeremy O'Donoghue) Date: Sun Jan 4 10:11:08 2009 Subject: [Haskell] ANN: wxHaskell 0.11.1 Message-ID: <1231082359.21749.1292906397@webmail.messagingengine.com> The wxHaskell development team is pleased to announce the release of wxHaskell 0.11.1, a Haskell binding for the wxWidgets GUI library. The Haskell support is built on a reasonably complete C language binding, which could be used as the basis for wxWidgets support on other languages/platforms which do not have easy mechanisms for linking with C++ code. The main highlights of wxHaskell 0.11.1 are: - Support for XRC resource files, allowing GUI design using a visual tool. Note that this is currently not type safe, and programs will crash if a widget is not cast to the correct type on loading. - Support for wxWidgets 2.8.x. Support for wxWidgets 2.4.2 is now dropped and wxHaskell will not compile against versions of wxWidgets prior to 2.6. This means that exploratory development using GHCi is no longer possible. Workaround is to continue to use older wxHaskell versions. - Support for GHC 6.10 - Preliminary support for Cabal / Hackage The full list of changes is provided at the end of this mail. Binary packages are available from the wxHaskell download site at http://sourceforge.net/project/showfiles.php?group_id=73133, for the following platforms: - Windows - OS X (Intel platform only) - Source code .tar.gz and .zip - Documentation (cross-platform) The wxHaskell libraries (wxcore and wx) are also available from Hackage (http://hackage.haskell.org). About wxHaskell --------------- wxHaskell is a Haskell binding to the wxWidgets GUI library for recent versions of the Glasgow Haskell Compiler. It provides a native look and feel on Windows, OS X and Linux, and a medium level programming interface. The main project page for wxHaskell is at http://wxhaskell.sourceforge.net. The latest source code for wxHaskell can always be obtained from http://darcs.haskell.org/wxhaskell. There are developer (wxhaskell-devel@lists.sourceforge.net and user (wxhaskell-users@lists.sourceforge.net) mailing lists, and a wiki page at http://haskell.org/haskellwiki/WxHaskell which can provide more information to those interested. The C language binding for wxHaskell was derived from an original C language binding created for the Eiffel programming language by the ELJ project (http://elj.sourceforge.net). Non backward compatible changes: - Preliminary Cabal / Hackage support - Added "--global" argument to configure script - Added "--user" argument to configure script - Changed wxhaskell official web page to Haskell wiki at http://haskell.org/haskellwiki/WxHaskell - Changed official darcs repository to code.haskell.org - Adapted the wxHaskell C-layer to work with wxWidgets 2.8 - Adapted some part of wxcore API to be able to refer to wxWidgets 2.8 documentation for wxcore functions - Added "TopLevelWindow", which mainly removes some functionality from "Frame" - Changed "--with-stc" argument to "--with-contrib" - Removed "Wave" type synonym Backward compatible additions: - Added support for using XRC resource files to load most controls and menus attached to frames. - Added sample file showing how to use XRC support to attach command handlers to menu items - Added sample file showing how to use properties with many controls. - Added "--enable-optimization" argument to configure script - Added "--O*" argument to configure script - Added "--enable-library-profiling" argument to configure script - Added "--p" argument to configure script - Added "-fvia-C" argument to configure script. And moved this compilation flag to configure script - Added Image / ByteString conversion functions - Adapted the configuration to work with GHC 6.10. - Changed "Var" type synonym from "IORef" to stm's "TVar" for thread safety - Changed "imageGetPixelArray" and "imageCreateFromPixelArray" to be more flexible. - Changed "Point", "Size", "Vector" and "Rect" to be type synonym. - Added "wxcMilliSleep". Now, "wxcAppUSleep" is deprecated. Use "wxcMilliSleep" instead - Added very experimental wxGraphicsContext support - Added wxSVGFileDC functions Bugfixes: - Applied DEPRECATED pragma to old deprecated functions. Just documented in Haddock before. - Fixed "processExecAsync" hangs Windows GUI-only program - Fixed Windows binary install problem when path with spaces (bug 1400488) - Probably fixed the applicattion failed to initialize properly when using Windows binary. -- Jeremy O'Donoghue jeremy.odonoghue@gmail.com -- Jeremy O'Donoghue jeremy.odonoghue@gmail.com From scsibug at imap.cc Sun Jan 4 19:11:21 2009 From: scsibug at imap.cc (Greg Heartsfield) Date: Sun Jan 4 19:03:02 2009 Subject: [Haskell] ANNOUNCE: cabal2doap 0.1 Message-ID: <20090105001121.GA40208@pmac.gateway.2wire.net> I am pleased to announce a new tool for cabalized Haskell projects: Cabal2doap generates Description of a Project (DOAP) XML/RDF data representing a Haskell project. This should make it possible for semantic web project aggregation sites to find and index Haskell projects. The project is available through Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/cabal2doap You can read a little more about it, and see a DOAP graph generated from a haskell project at this blog post: http://blog.gregheartsfield.com/2009/01/04/cabal2doap/ Thanks, Greg Heartsfield -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 186 bytes Desc: not available Url : http://www.haskell.org/pipermail/haskell/attachments/20090104/31b1a417/attachment.bin From igloo at earth.li Mon Jan 5 17:43:51 2009 From: igloo at earth.li (Ian Lynagh) Date: Mon Jan 5 17:35:30 2009 Subject: [Haskell] possible bug in pretty-1.0.1.0 In-Reply-To: <20081215161756.GA29082@berkeley.edu> References: <20081215161756.GA29082@berkeley.edu> Message-ID: <20090105224351.GA11546@matrix.chaos.earth.li> Hi John, On Mon, Dec 15, 2008 at 08:17:56AM -0800, John MacFarlane wrote: > I noticed a difference in how "hang" works between pretty-1.0.0.0 and > pretty-1.0.1.0. I think it's a bug. If this isn't the right place to > report it, please let me know where I should. The best place at the moment is in GHC's trac: http://hackage.haskell.org/trac/ghc/newticket setting the component to "libraries/pretty". Thanks Ian From icfp.publicity at googlemail.com Wed Jan 7 11:40:44 2009 From: icfp.publicity at googlemail.com (Matthew Fluet (ICFP Publicity Chair)) Date: Wed Jan 7 11:32:22 2009 Subject: [Haskell] ICFP: Child care at conference Message-ID: <53ff55480901070840k770375cej2a1ff9797329f485@mail.gmail.com> Potential ICFP attendees: The ACM-SIGPLAN Executive Committee, which oversees and sponsors ICFP, is considering expanding its travel grants for event participants in need of child care assistance. (Such expansion would also apply to other major SIGPLAN-sponsored conferences, such as PLDI, POPL, OOPSLA.) The purpose of this message is to solicit feedback from potential attendees regarding the desirability for child care assistance and what forms of assistance be most appropriate. If child care assistance at ICFP (or other SIGPLAN events) is of interest to you, please contact me (at icfp.publicity@gmail.com -or- fluet@tti-c.org) with your comments. Some questions of particular interest: * What age groups of children are most appropriate to cover? * What types of costs might SIGPLAN cover to facilitate your participation in events? Sincerely, -Matthew Fluet (ICFP Publicity Chair) From tonyhannan2 at gmail.com Wed Jan 7 19:01:12 2009 From: tonyhannan2 at gmail.com (Tony Hannan) Date: Wed Jan 7 18:52:47 2009 Subject: [Haskell] Hypothetical Haskell job in New York Message-ID: Hello Haskellers, I'm trying to convince my boss to use Haskell. His main concern is finding people who know Haskell when hiring. He is comfortable with Java because he knows he can always find a Java developer. So if I advertised we were looking for Haskell programmers in New York City, how many would respond? Please reply to this email if you would respond. Email me privately if you like and I will post the results to haskell-cafe later. Thanks, Tony -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090107/1664d95e/attachment.htm From tonyhannan2 at gmail.com Wed Jan 7 19:25:21 2009 From: tonyhannan2 at gmail.com (Tony Hannan) Date: Wed Jan 7 19:16:54 2009 Subject: [Haskell] Re: Hypothetical Haskell job in New York In-Reply-To: References: Message-ID: Let me give you more information about this hypothetical job posting. Our company is a startup CDN ( http://en.wikipedia.org/wiki/Content_Delivery_Network) about 3 years old and doing well. You would hythothetically be one of 7 programmer who write all the software involved in a CDN including http server, dns server, monitoring, load balancing, customer and operator user interface, etc. The pay depends on experience but is good. I already got a few replies, keep them coming. Thanks, Tony On Wed, Jan 7, 2009 at 7:01 PM, Tony Hannan wrote: > Hello Haskellers, > > I'm trying to convince my boss to use Haskell. His main concern is finding > people who know Haskell when hiring. He is comfortable with Java because he > knows he can always find a Java developer. So if I advertised we were > looking for Haskell programmers in New York City, how many would respond? > Please reply to this email if you would respond. Email me privately if you > like and I will post the results to haskell-cafe later. > > Thanks, > Tony > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090107/5ed9c093/attachment.htm From dons at galois.com Thu Jan 8 13:04:56 2009 From: dons at galois.com (Don Stewart) Date: Thu Jan 8 12:56:17 2009 Subject: [Haskell] Re: [Haskell-cafe] Re: Hypothetical Haskell job in New York In-Reply-To: <4965DC5D.1050006@libero.it> References: <4965DC5D.1050006@libero.it> Message-ID: <20090108180456.GD22269@scytale.galois.com> manlio_perillo: > Tony Hannan ha scritto: > >Let me give you more information about this hypothetical job posting. > >Our company is a startup CDN > >(http://en.wikipedia.org/wiki/Content_Delivery_Network) about 3 years > >old and doing well. You would hythothetically be one of 7 programmer who > >write all the software involved in a CDN including http server, dns > >server, monitoring, load balancing, customer and operator user > >interface, etc. The pay depends on experience but is good. > > > > Isn't it better to use Erlang for the http and dns server ? > > I don't really like the syntax, but you have many things already > implemented. > Unfortunately Haskell is not yet ready for this task. > > http://eddie.sourceforge.net/what.html > http://yaws.hyber.org/ > Umm... http and dns? You're kidding right? Half of hackage.haskell.org is devoted to networking tasks. -- Don From jgoerzen at complete.org Thu Jan 8 17:18:44 2009 From: jgoerzen at complete.org (John Goerzen) Date: Thu Jan 8 17:10:21 2009 Subject: [Haskell] Re: [Haskell-cafe] Re: Hypothetical Haskell job in New York In-Reply-To: <4966662C.4050009@libero.it> References: <4965DC5D.1050006@libero.it> <20090108180456.GD22269@scytale.galois.com> <4966662C.4050009@libero.it> Message-ID: <20090108221844.GB30539@hustlerturf.com> On Thu, Jan 08, 2009 at 09:46:36PM +0100, Manlio Perillo wrote: > I'm speaking about servers, not clients. > > How much of pure Haskell internet servers are used in a production > environment, in the "open internet" (and not in restricted LANs)? Does that really matter? I tend to judge technology based on its merits for my work, not on who uses it. The fact that Google uses Python didn't impact my decision to start using it, and it also didn't impact my decision to start using Haskell. > How much traffic they handle? > How hard are to maintain/update/develope/? Those, of course, are pretty good questions. > Personally, I only know http://hpaste.org/, based on > Server: HAppS/0.8.4 Take a look at Hackage. There are quite a few other Haskell web frameworks as well: everything from the low-level FastCGI to higher-level HSP and WASH. > And about HAppS, I'm not an Haskell expert, but reading the source I see > that static files are server (in the HTTP server) using > Data.ByteString.Lazy's hGetContents > > Is this ok? In what respect? The fact that something uses ByteString.Lazy.hGetContents doesn't imply a problem to me. It's a useful function. It can be used properly, or not, just as while or read() in C can be. It's not evil incarnate like sprintf() or anything :-) -- John From niklas.broberg at gmail.com Thu Jan 8 19:51:20 2009 From: niklas.broberg at gmail.com (Niklas Broberg) Date: Thu Jan 8 19:42:55 2009 Subject: [Haskell] ANNOUNCE: haskell-src-exts 0.4.8 Message-ID: Fellow Haskelleers, it is my pleasure to announce the new release of the haskell-src-exts package, version 0.4.8: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/haskell-src-exts-0.4.8 darcs get http://code.haskell.org/HSP/haskell-src-exts This is a bug-fix release in the wake of the flurry of bug reports I received due to Neil Mitchell's release of hlint. Not all bugs have been squashed, but all the ones that I could handle with fairly small changes to the library should be. Those include deriving for MPTCs, importing constructor symbols, inline pragmas in instance declarations, scoped type variables, and a few more. There are some minor non-backwards compatible changes to the abstract syntax, but nothing too serious. The most pervasive is that the Match and PatBind constructors have an extra argument of type Maybe Type, representing an optional type signature. Derivings also are no longer just a list of class names, since those classes can now have extra parameters. Four things remain on the bug list: - Support for explicitly kinded arguments to type families. Shouldn't be too hard, but will require changes to the AST that I will leave for the next release. - Support for (un-parenthesised) higher-ranked types as arguments. haskell-src-exts supports e.g. foo :: b -> (forall a . [a]) -> b but not foo :: b -> forall a . [a] -> b. Supporting the latter is simply a parser issue, but a rather tricky one. - Correct handling of hyphened vars (an artifact of HSX/HSP) vs minus operators. This one is nasty. - Support for Unicode symbols for e.g. ->. Fixing that would require me to have a Unicode-compliant editor, which it appears I don't. And I couldn't have someone else submit a patch either, since then I couldn't open the file anymore in my editor. So unless someone can point out a good Unicode-aware editor for Windows, I'm afraid this is a feature that won't be implemented. If you find anything else that haskell-src-exts fails on, please report it. Cheers and Happy Haskelling, /Niklas From tonyhannan2 at gmail.com Thu Jan 8 20:13:11 2009 From: tonyhannan2 at gmail.com (Tony Hannan) Date: Thu Jan 8 20:04:46 2009 Subject: [Haskell] Re: Hypothetical Haskell job in New York In-Reply-To: References: Message-ID: Well, I received 20 responses in 24 hours, many who would move from abroad to New York! I am very pleased with this number. Hopefully this will ease my boss's concern. But please continue to reply to me if you would be interested and haven't done so yet. The higher the number the more convincing the argument to my boss. Thank you to all who replied. What a great mailing list. I will let you know if it actually turns into a real job opportunity. Cheers, Tony On Wed, Jan 7, 2009 at 7:01 PM, Tony Hannan wrote: > Hello Haskellers, > > I'm trying to convince my boss to use Haskell. His main concern is finding > people who know Haskell when hiring. He is comfortable with Java because he > knows he can always find a Java developer. So if I advertised we were > looking for Haskell programmers in New York City, how many would respond? > Please reply to this email if you would respond. Email me privately if you > like and I will post the results to haskell-cafe later. > Our company is a startup CDN ( > http://en.wikipedia.org/wiki/Content_Delivery_Network) about 3 years old > and doing well. You would hythothetically be one of 7 programmer who write > all the software involved in a CDN including http server, dns server, > monitoring, load balancing, customer and operator user interface, etc. The > pay depends on experience but is good. > > Thanks, > Tony > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090108/6b91eb0d/attachment-0001.htm From max.rabkin at gmail.com Thu Jan 8 20:15:48 2009 From: max.rabkin at gmail.com (Max Rabkin) Date: Thu Jan 8 20:07:16 2009 Subject: [Haskell] Re: [Haskell-cafe] ANNOUNCE: haskell-src-exts 0.4.8 In-Reply-To: References: Message-ID: On Thu, Jan 8, 2009 at 4:51 PM, Niklas Broberg wrote: > So unless someone can > point out a good Unicode-aware editor for Windows, I'm afraid this is > a feature that won't be implemented. A Windows port of a Unix editor? I know Vim is available on Windows. Otherwise, Notepad++ appears to have Unicode support. > Cheers and Happy Haskelling, > > /Niklas From kahl at cas.mcmaster.ca Thu Jan 8 21:26:28 2009 From: kahl at cas.mcmaster.ca (kahl@cas.mcmaster.ca) Date: Thu Jan 8 21:18:00 2009 Subject: [Haskell] ANNOUNCE: haskell-src-exts 0.4.8 In-Reply-To: (niklas.broberg@gmail.com) References: Message-ID: <20090109022628.3942.qmail@schroeder.cas.mcmaster.ca> Niklas Broberg" released a new version of haskell-src-exts --- Thank you Niklas! --- and listed as one of the ``missing features'': > > - Support for (un-parenthesised) higher-ranked types as arguments. > haskell-src-exts supports e.g. foo :: b -> (forall a . [a]) -> b > but not foo :: b -> forall a . [a] -> b. Supporting the latter is > simply a parser issue, but a rather tricky one. I would not think that this pair of parentheses can be ommitted without changing the meaning; I would parse b -> forall a . [a] -> b as b -> forall a . ([a] -> b) (I am also not sure whether Niklas meant to assert that those two types were equal, so this is just in case...) Perhaps it helps as motivation to consider that from a dependent-type point-of-view, the function type constructor is a special case of the dependent product type construction, | a -> b = Pi _t :: a . b |, where the bound variable, _t, does not occur in b. That brings the function types into the same kind of syntactic mechanism as forall-types, and: b -> forall a . [a] -> b = Pi _t :: b . forall a . Pi _u :: [a] . b /= Pi _t : b . Pi _v : (forall a . [a]) . b = b -> (forall a . [a]) -> b Wolfram From cfp at clip.dia.fi.upm.es Fri Jan 9 05:01:05 2009 From: cfp at clip.dia.fi.upm.es (CFP) Date: Fri Jan 9 04:52:51 2009 Subject: [Haskell] 10 PhD, PostDoc, and Engineering Positions offered!! Message-ID: 10 PhD, PostDoc, and Engineering Positions offered!! ----------------------------------------------------------------------- | HATS: Highly Adaptable and Trustworthy Software using Formal Models | ----------------------------------------------------------------------- HATS is a new Integrated Project funded by the European Union, within the programme "Future and Emerging Technologies" (FET) of the 7th Framework Programme (subject to contract) starting March 2009. The project partners from Chalmers Technical University, Gothenborg, Sweden University of Oslo, Norway Royal Institute of Technology, Stockholm, Sweden Technical University of Madrid, Spain IMDEA Software, Spain Technical University of Kaiserslautern, Germany, University of Bologna, Italy, Centrum voor Wiskunde en Informatica (CWI), Amsterdam, Netherlands Norwegian Computer Center, Oslo, Norway Fredhopper B.V., Amsterdam, Netherlands Fraunhofer Institute for Experimental SE, Kaiserslautern, Germany, Katholieke Universiteit Leuven, Belgium are jointly advertising several 3-5 year PhD, PostDoc, and Engineering positions. The goal of HATS is a tool-supported framework and formal methodology for the development of long-lived and trustworthy software systems. Specifically, HATS will turn software product family (SWPF) development into a rigorous approach. The technical core of the project is an Abstract Behavioral Specification language which will allow precise description of SWPF features and components and their instances. For further information see: http://www.hats-project.eu Topic areas: Applicants should have a background and/or interest in one of the topics software modeling, modeling and programming languages, formal methods, verification, language-based security, type systems, or concurrency theory. The following positions are offered: * 2 PhD positions with emphasis on formal modeling and verification at Chalmers University of Technology. One of the positions is in the EU project CHARTER which is closely related to HATS. Application deadline is 9th February 2009. Contact: Prof. Reiner Haehnle. Further details and information on how to apply at http://www.chalmers.se/cse/EN/news/vacancies/positions/two-ph-d-student * A Research Software Engineer at Fredhopper (Amsterdam). The position will comprise of industrial research on modeling and verification of key components of Fredhopper's flagship product within the EU-funded HATS research project. Fredhopper is the Nr. 1 provider of Search & Merchandising solutions for online business in Europe and industrial leader in the HATS project. Apply by 31 January 2009 for the most optimal procedure. Contact for project information: Dr. Nikolay Diakov. More information and how to apply at: http://www.fredhopper.com/public/company-opps.php?cat=0&subcat=0#research-software-engineer * 2 PostDoc positions at the University of Bologna. The emphasis is on formal modeling and verification of the kind of concurrent systems studied in Hats using various techniques, including behavioural techniques and type systems. Application deadline is 31 January (later applications may also be taken into account). Contact: Prof. Davide Sangiorgi, see: http://www.cs.unibo.it/~sangio/Hats/vacancies.txt * 3 PhD positions with emphasis on static analysis and security at the Technical University of Madrid/IMDEA Software. One of the positions is in the DOVES Spanish project, which is closely related to HATS. The application deadline is 25 January. Later applications may also be taken into account if the positions are not covered. Contact: Prof. German Puebla. Further details and information on how to apply at http://clip.dia.fi.upm.es/Job_Openings/hats-doves-phd-grants.html * 1 PhD and 1 PostDoc position in the area of software modeling and verification at the University of Kaiserslautern. The emphasis in the area of software modeling is on semantically founded integration of behavioral software models, feature-based descriptions of variability and programs. The emphasis in verification is on modular techniques for object-oriented models and model refinement. Application deadline is January 31. Later applications may also be taken into account. Contact: Prof. A. Poetzsch-Heffter. Further details and information on how to apply at http://softech.informatik.uni-kl.de/Homepage/OffeneStellen * Further positions will be announced at this space! Applicants should have (or expect to have at the start of employment): * For a PhD position: a good Masters level or excellent Bachelor level degree (or equivalent) in computer science, mathematics, or a closely related discipline with knowledge in the areas above. Please see also individual requirements at each site which can differ. * For a Postdoc position: a PhD in computer science or mathematics, preferably with research experience in one of the listed topic areas. * For a software engineer position: a Masters or PhD level level degree (or equivalent) in computer science, mathematics, or a closely related discipline with good knowledge in the areas of program verification, automata theory or discrete math. Knowledge of Java and some programming experience count as a plus. Regardless of the specific application instructions, each application should contain: 1) a full CV including letters of recommendation 2) a research statement, indicating the research directions you are interesting in and what relevant experience you have 3) transcripts of degree results where available. To apply, please follow the links given above. Expressions of interest received by 15 January 2009 are guaranteed full consideration. Specific application deadlines may vary. Early contact would be appreciated. From jgoerzen at complete.org Fri Jan 9 08:36:55 2009 From: jgoerzen at complete.org (John Goerzen) Date: Fri Jan 9 08:28:35 2009 Subject: [Haskell] Re: [Haskell-cafe] Re: Hypothetical Haskell job in New York In-Reply-To: <49673DD4.4070309@libero.it> References: <4965DC5D.1050006@libero.it> <20090108180456.GD22269@scytale.galois.com> <4966662C.4050009@libero.it> <20090108221844.GB30539@hustlerturf.com> <49673DD4.4070309@libero.it> Message-ID: <20090109133655.GA29565@complete.org> On Fri, Jan 09, 2009 at 01:06:44PM +0100, Manlio Perillo wrote: > John Goerzen ha scritto: >> On Thu, Jan 08, 2009 at 09:46:36PM +0100, Manlio Perillo wrote: >>> I'm speaking about servers, not clients. >>> >>> How much of pure Haskell internet servers are used in a production >>> environment, in the "open internet" (and not in restricted LANs)? >> >> Does that really matter? I tend to judge technology based on its >> merits for my work, not on who uses it. > > Well, testing a server is not easy. > You can have a server that works for you without problems, but in > different environment it gives problems. I completely understand that, as a sysadmin that has to maintain mission-critical systems. Unfortunately, it's also so often used as a justification for using "whatever everyone else has". So many people buy Exchange for that reason, as an example. Exchange has a pretty long history of bugs that make it really unsuitable for use in the Enterprise, yet people use it anyway because they think everyone uses it. A particularly amusing example is at http://software.complete.org/software/issues/show/114 - my little OfflineIMAP program appears to be able to take down entire Exchange databases and force a restore from backup, because Exchange has a hard-coded limit of 32k different mail header names *per installation*, and OfflineIMAP generates one unique header each time it uploads a message to the server. If my program can do that accidentally, imagine what someone with a will to do that could do. Nobody would have ever tried Haskell, Python, or Perl in mission-critical situations if they always thought like that. Somebody has to be first, and I see no problem with it being us, as long as we are confident of the outcome. Part of the calculus has to be: 1) Can we test it under stress? 2) How confident are we that it will behave right under conditions we can't test? (Esp. malicious ones) 3) Can we fix it ourselves if it breaks? How many others can fix it? I really like Haskell because of #2. While there is no 100% guarantee, I feel better about Haskell not throwing a type error in some obscure condition than I do about Python not doing so. I also like #2 because of the availability of both HUnit and QuickCheck. Write your code right, and you can QuickCheck a significant part of it. -- John From agocorona at gmail.com Fri Jan 9 11:49:44 2009 From: agocorona at gmail.com (Alberto G. Corona ) Date: Fri Jan 9 11:41:18 2009 Subject: [Haskell] ANNOUNCE: Data.TCache 0.5.5 Message-ID: The main addition of this versi?n is the capablity to safely handle transact, and serialize to permanent storage many datatypes simultaneously in the same piece of code and incrementally. Just register each new datatype (with registerType :: ). So it is not necessary to glue all types in advance in a single algebraic datatype. I suppose taht "enhanced composablility" applies to this feature. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/TCache In this release: Added a Data.TCache.Dynamic. (SEE dynamicsample.hs) - Can handle, transact, and serialize to disk many datatypes simultaneously and incrementally - Dynamic uses the same interface than TCache and add *DResource(s) calls for handling many datatypes simultaneously - Safe dynamic data handling trough a lighter, indexable and serializable version of Data.Dynamic - Added KEY object for retrieving any object of any type. Data.Tcache is a transactional cache with configurable persistence. It tries to simulate Hibernate for Java or Rails for Ruby. The main difference is that transactions are done in memory trough STM. There are transactional cache implementations for some J2EE servers like JBOSS. TCache uses STM. It can atomically apply a function to a list of cached objects. The resulting objects go back to the cache (withResources). It also can retrieve these objects (getResources). Persistence can be syncronous (syncCache) or asyncronous, wtih configurable time between cache writes and configurable cache clearance strategy. the size of the cache can be configured too . All of this can be done trough clearSyncCacheProc. Even the TVar variables can be accessed directly (getTVar) to acceess all the semantic of atomic blocks while maintaining the persistence of the TVar updates. Persistence can be defined for each object: Each object must have a defined key, a default filename path (if applicable). Persistence is pre-defined in files, but the readResource writeResource and delResource methods can be redefined to persist in databases or whatever. There are Samples in the package that explain the main features. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090109/30f88266/attachment.htm From aslatter at gmail.com Fri Jan 9 11:57:58 2009 From: aslatter at gmail.com (Antoine Latter) Date: Fri Jan 9 11:49:29 2009 Subject: [Haskell] ANNOUNCE: X Haskell Bindings Message-ID: <694519c50901090857x4b3931d4pb891ed1d7f6a66bd@mail.gmail.com> Folks, I'd like to announce a preview-release of the X Haskell Bindings. The goal of the library is to provide low-level access to the X11 protocol, in the spirit of the X C Bindings This is a "preview" because I expect that the interface will still need to change - but I do plan on bump the minor-version number when that happens. On Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/xhb What works: All X protocol requests have corresponding functions. I haven't tested all of them. Requests are sent asynchronously - the caller is not blocked until they need to examine the result of the request Errors and Events are unpacked into Haskell data types It should be safe to use the same connection in multiple threads What needs improvement: * There's no documentation - you pretty much need to be sitting down with the X Protocol reference while using this library. Once we can get documentation into the XML that this library is generated from, we should be able to generate Haddock documentation at the same time * A lot of parameters are specified using integer types, even though a proper Haskell enum-like data type exists. * Many functions take a ValueParam argument, which is not fun to work with in a language like Haskell. I have plans for how to make these more type-safe, but this is something else that requires more information in the XML protocol descriptions. * There's no way to share a connection between XHB and libraries built against the Xlib bindings. * I haven't done any benchmarking, so it's possible that all of this is pretty slow. Keep in mind that this is a library for the X Protocol - it alone is not a replacement for XLib - XLib does a lot more than pushing and pulling on a file-handle. Related releases: Spencer Janssen has released FFI bindings to Xauth: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Xauth-0.1 I've released a small library for determining the byte-ordering of the system: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/byteorder-1.0.0 Related projects: X C Bindings: http://xcb.freedesktop.org/ -Antoine From yminsky at janestcapital.com Fri Jan 9 13:05:50 2009 From: yminsky at janestcapital.com (Yaron Minsky) Date: Fri Jan 9 12:57:16 2009 Subject: [Haskell] Jane Street is hiring functional programmers Message-ID: <1231524350.20057.19.camel@nyc-qws-007.delacy.com> Greetings all. I just wanted to remind people that Jane Street is still hiring. Despite the problems besetting much of the financial industry, we have grown strongly in the last few years in our people, our technology, the scope of our business and its profitability. We now have over 30 OCaml developers, and we are actively looking to hire more in Tokyo, London and New York. For someone who cares about functional programming, Jane Street is an interesting place to consider. Jane Street has invested deeply in OCaml, to the point where we now have the largest team of OCaml programmers in any industrial setting, and probably the world's largest OCaml codebase--almost a million lines. We really believe in functional programming, and use OCaml for everything from research to systems adminstration to trading systems. The atmosphere is informal and intellectual, with a focus on learning. The work itself is deeply challenging, and you get to see the practical impact of your efforts in quick and dramatic terms. Jane Street is also a small enough place that people have the freedom to get involved in many different areas of the business. Unlike many financial firms, software and technology are considered a core part of what we do, not some segmented-off cost center that the people who run the business don't think about. Jane Street is a place where people really care about the quality of the software, to the point that several of the most senior members of the firm, who do not have technology backgrounds, nonetheless review critical portions of the codebase before they can go into production. If you'd like to learn more, here are some links. First, here's a paper I wrote for the Monad Reader: http://www.haskell.org/sitewiki/images/0/03/TMR-Issue7.pdf We also have a technically-oriented blog: http://ocaml.janestreet.com For a (recruiting-oriented) overview of Jane Street, here's the firm website: http://janestreet.com If you're interested, send me a resume and cover letter. y From byorgey at seas.upenn.edu Sat Jan 10 16:30:08 2009 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Sat Jan 10 16:21:43 2009 Subject: [Haskell] Haskell Weekly News: Issue 100 - January 10, 2009 Message-ID: <20090110213008.GA8573@seas.upenn.edu> --------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20090110 Issue 100 - January 10, 2009 --------------------------------------------------------------------------- Welcome to issue 100 of HWN, a newsletter covering developments in the [1]Haskell community. Welcome to the 100th (!) issue of the Haskell Weekly News, suitably published on your friendly neighborhood HWN editor's 1000th birthday (base 3). If you ever have content to be included in the HWN (announcements, blog posts, major life news) or a suggestion on how the HWN could be more useful to you as a window into the goings-on of the Haskell community, please don't hesitate to send it along, using the contact information at the end of each issue. Announcements Haskell BLAS bindings version 0.7. Patrick Perry [2]announced the [3]release of version 0.7 of the [4]blas package, Haskell bindings to the BLAS (Basic Linear Algebra Subprograms) library. According to Patrick, this release is "a major milestone---it is finally the library with all of the features that I want." X Haskell Bindings. Antoine Latter [5]announced a preview release of the [6]X Haskell Bindings. The goal of the library is to provide low-level access to the X11 protocol, in the spirit of the [7]X C Bindings. Data.TCache 0.5.5. Alberto G. Corona [8]announced the 0.5.5 release of the [9]TCache package, a transactional data cache with configurable persistence. This version adds the the capability to safely handle transactions, and incrementally serialize many data types simultaneously in the same piece of code. haskell-src-exts 0.4.8. Niklas Broberg [10]announced a new release (0.4.8) of the [11]haskell-src-exts package. This is a bug-fix release in the wake of the flurry of bug reports due to [12]hlint. bytestring-trie 0.1.2 (bugfix). wren ng thornton [13]announced a bugfix release for [14]bytestring-trie, efficient finite maps from (byte)strings to values. This release fixes a bug in alterBy, and adds an Eq instance. wxHaskell 0.11.1. Jeremy O'Donoghue [15]announced the release of [16]wxHaskell 0.11.1, a Haskell binding for the wxWidgets GUI library. The main highlights include support for XRC resource files, support for wxWidgets 2.8.x and GHC 6.10, and preliminary support for Cabal and Hackage. cabal2doap 0.1. Greg Heartsfield [17]announced the [18]release of [19]Cabal2doap, which generates Description of a Project (DOAP) XML/RDF data representing a Haskell project. This should make it possible for semantic web project aggregation sites to find and index Haskell projects. Jobs Jane Street is hiring functional programmers. Yaron Minsky [20]reminded everyone that [21]Jane Street is still hiring! Jane Street now has over 30 OCaml developers, and is actively looking to hire more in Tokyo, London and New York. PhD, postdoc, and engineering positions at HATS. CFP [22]announced the availability of 10 PhD, postdoc, and engineering positions within the HATS project (Highly Adaptable and Trustworthy Software using Formal Models), a new Integrated Project funded by the European Union, within the programme "Future and Emerging Technologies" (FET). The goal of HATS is a tool-supported framework and formal methodology for the development of long-lived and trustworthy software systems. Hypothetical Haskell job in New York. Tony Hannan [23]asked how many would be interested in applying to a hypothetical Haskell job in New York, assuming his boss can be convinced to use Haskell. Blog noise [24]Haskell news from the [25]blogosphere. * Lennart Augustsson (augustss): [26]LLVM arithmetic. * GHC / OpenSPARC Project: [27]Bootstrapping 6. * Patrick Perry: [28]New Haskell BLAS bindings!. * Clemens Fruhwirth: [29]Liskell standalone. * The GHC Team: [30]Benchmarking recent improvements in parallelism. * Galois, Inc: [31]Tech Talk: OpenTheory: Package Management for Higher Order Logic Theories. * Eric Kow (kowey): [32]fold diagram revisited?. * GHC / OpenSPARC Project: [33]Bootstrapping 5. * Lennart Augustsson (augustss): [34]LLVM. * Sebastian Fischer: [35]Monadic and Queue-Based Tree Search. * Philip Wadler: [36]Well-typed programs can't be blamed. * GHC / OpenSPARC Project: [37]Bootstrapping 4. * Manuel M T Chakravarty: [38]GPU Kernels as Data-Parallel Array Computations in Haskell.. * GHC / OpenSPARC Project: [39]Bootstrapping 3. * Tom Schrijvers: [40]Monadic Constraint Programming. * Conal Elliott: [41]Another angle on functional future values. * >>> Greg Heartsfield: [42]Cabal2doap. * Christopher Lane Hinson: [43]MaybeArrow?. * GHC / OpenSPARC Project: [44]Bootstrapping 2. * Darcs: [45]darcs 2.2.0pre2 ready for testing!. * Alson Kemp: [46]Sad about Import Cycles. * GHC / OpenSPARC Project: [47]Bootstrapping. * gamr7: [48]Accessing Recursive Haskell Data Structures from C/Python. Quotes of the Week * jml: A wise man once said, "the program isn't debugged until the last user is dead". * pumpkin: OMG I <3 RECORD SYNTAX * Olathe: > floor (1.0/0.0) 179769... But you can see that Haskell can calculate the maximum Integer. * lilac: gha! I'm drowning in the haskell number hierarchy again drdozer: magic 8-ball says 'add calls to fromIntegral' * monopoly: do not exit IO. go directly to the REPL, do not pass any parameters or continuations. * EvilTerran: [on category theory] the same place of nightmares that spawned zygohistomorphic prepromorphisms :P About the Haskell Weekly News New editions are posted to [49]the Haskell mailing list as well as to [50]the Haskell Sequence and [51]Planet Haskell. [52]RSS is also available, and headlines appear on [53]haskell.org. To help create new editions of this newsletter, please see the information on [54]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [55]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50195 3. http://quantile95.com/2009/01/09/new-haskell-blas-bindings/ 4. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/blas 5. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50170 6. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/xhb 7. http://xcb.freedesktop.org/ 8. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50169 9. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/TCache 10. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50119 11. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/haskell-src-exts 12. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hlint 13. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49956 14. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/bytestring-trie 15. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49898 16. http://wxhaskell.sourceforge.net/ 17. http://article.gmane.org/gmane.comp.lang.haskell.general/16718 18. http://blog.gregheartsfield.com/2009/01/04/cabal2doap/ 19. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/cabal2doap 20. http://article.gmane.org/gmane.comp.lang.haskell.general/16741 21. http://janestreet.com/ 22. http://article.gmane.org/gmane.comp.lang.haskell.general/16736 23. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50015 24. http://planet.haskell.org/ 25. http://haskell.org/haskellwiki/Blog_articles 26. http://augustss.blogspot.com/2009/01/llvm-arithmetic-so-we-want-to-compute-x.html 27. http://ghcsparc.blogspot.com/2009/01/bootstrapping-6.html 28. http://quantile95.com/2009/01/09/new-haskell-blas-bindings/ 29. http://blog.clemens.endorphin.org/2009/01/liskell-standalone.html 30. http://ghcmutterings.wordpress.com/2009/01/09/46/ 31. http://www.galois.com/blog/2009/01/08/tech-talk-opentheory-package-management-for-higher-order-logic-theories/ 32. http://koweycode.blogspot.com/2009/01/fold-diagram-revisited.html 33. http://ghcsparc.blogspot.com/2009/01/bootstrapping-5.html 34. http://augustss.blogspot.com/2009/01/llvm-llvm-low-level-virtual-machine-is.html 35. http://www-ps.informatik.uni-kiel.de/~sebf/projects/monad-vs-queue.html 36. http://wadler.blogspot.com/2009/01/well-typed-programs-cant-be-blamed.html 37. http://ghcsparc.blogspot.com/2009/01/bootstrapping-4.html 38. http://justtesting.org/post/68696876 39. http://ghcsparc.blogspot.com/2009/01/bootstrapping-3.html 40. http://tomschrijvers.blogspot.com/2009/01/monadic-constraint-programming.html 41. http://conal.net/blog/posts/another-angle-on-functional-future-values/ 42. http://blog.gregheartsfield.com/2009/01/04/cabal2doap/ 43. http://blog.downstairspeople.org/2009/01/04/maybearrow/ 44. http://ghcsparc.blogspot.com/2009/01/test-run-of-patched-ghc-6.html 45. http://blog.darcs.net/2009/01/darcs-220pre2-ready-for-testing.html 46. http://www.alsonkemp.com/haskell/sad-about-import-cycles/ 47. http://ghcsparc.blogspot.com/2009/01/building.html 48. http://gamr7.com/blog/?p=66 49. http://www.haskell.org/mailman/listinfo/haskell 50. http://sequence.complete.org/ 51. http://planet.haskell.org/ 52. http://sequence.complete.org/node/feed 53. http://haskell.org/ 54. http://haskell.org/haskellwiki/HWN 55. http://code.haskell.org/~byorgey/code/hwn/ From ashley at semantic.org Sat Jan 10 20:36:36 2009 From: ashley at semantic.org (Ashley Yakeley) Date: Sat Jan 10 20:28:26 2009 Subject: [Haskell] HaskellWiki Interruption for Upgrade Message-ID: I will be upgrading HaskellWiki to the latest stable version of MediaWiki (1.13.3) over the next few hours. The plan is this: 1. Switch off HaskellWiki. This may involve switching off the Apache server running haskell.org. 2. Dump the database to a file. 3. Download MediaWiki 1.13.3. 4. Run its upgrade process. 5. Install useful extensions. I'm currently looking at this: http://www.mediawiki.org/wiki/Manual:Combating_spam 6. Tweak config file. 7. Switch everything back on. 8. Post again here. -- Ashley Yakeley From ashley at semantic.org Sat Jan 10 20:58:38 2009 From: ashley at semantic.org (Ashley Yakeley) Date: Sat Jan 10 20:50:20 2009 Subject: [Haskell] Re: HaskellWiki Interruption for Upgrade In-Reply-To: References: Message-ID: <4969524E.2010209@semantic.org> I wrote: > I will be upgrading HaskellWiki to the latest stable version of > MediaWiki (1.13.3) over the next few hours. The plan is this: > > 1. Switch off HaskellWiki. This may involve switching off the Apache > server running haskell.org. > 2. Dump the database to a file. > 3. Download MediaWiki 1.13.3. > 4. Run its upgrade process. > 5. Install useful extensions. I'm currently looking at this: > http://www.mediawiki.org/wiki/Manual:Combating_spam > 6. Tweak config file. > 7. Switch everything back on. > 8. Post again here. I will also need up upgrade both PHP and MySQL. -- Ashley Yakeley From ashley at semantic.org Sat Jan 10 21:32:39 2009 From: ashley at semantic.org (Ashley Yakeley) Date: Sat Jan 10 21:24:01 2009 Subject: [Haskell] haskell.org HTTP Interruption for Upgrade In-Reply-To: <4969524E.2010209@semantic.org> References: <4969524E.2010209@semantic.org> Message-ID: <49695A47.1040009@semantic.org> Ashley Yakeley wrote: > I wrote: >> I will be upgrading HaskellWiki to the latest stable version of >> MediaWiki (1.13.3) over the next few hours. The plan is this: >> >> 1. Switch off HaskellWiki. This may involve switching off the Apache >> server running haskell.org. >> 2. Dump the database to a file. >> 3. Download MediaWiki 1.13.3. >> 4. Run its upgrade process. >> 5. Install useful extensions. I'm currently looking at this: >> http://www.mediawiki.org/wiki/Manual:Combating_spam >> 6. Tweak config file. >> 7. Switch everything back on. >> 8. Post again here. > > I will also need up upgrade both PHP and MySQL. Apache has been switched off. -- Ashley Yakeley From ashley at semantic.org Sat Jan 10 22:02:34 2009 From: ashley at semantic.org (Ashley Yakeley) Date: Sat Jan 10 21:54:14 2009 Subject: [Haskell] HaskellWiki Upgrade Aborted In-Reply-To: <4969524E.2010209@semantic.org> References: <4969524E.2010209@semantic.org> Message-ID: <4969614A.2020403@semantic.org> I have given up attempting to upgrade HaskellWiki, and resumed the site's previous normal operation. I wrote: > I will also need up upgrade both PHP and MySQL. It turns out it would be hard to upgrade MySQL, as various things depend on the old version: $ sudo rpm -U MySQL-server-community-5.1.30-0.rhel3.i386.rpm warning: MySQL-server-community-5.1.30-0.rhel3.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5 error: Failed dependencies: libmysqlclient.so.10 is needed by (installed) mod_auth_mysql-20030510-2.ent libmysqlclient.so.10 is needed by (installed) perl-DBD-MySQL-2.1021-4.EL3 libmysqlclient.so.10 is needed by (installed) php-mysql-4.3.2-48.ent I don't know what mod_auth_mysql and perl-DBD-MySQL are being used for, so I don't believe I can upgrade them safely. The machine is running RHEL AS 3 update 9 with Linux 2.4.21. -- Ashley Yakeley From isabelle.perseil at telecom-paristech.fr Sun Jan 11 12:02:24 2009 From: isabelle.perseil at telecom-paristech.fr (Isabelle Perseil) Date: Sun Jan 11 11:54:19 2009 Subject: [Haskell] (CfP) UML&AADL'2009 : CALL FOR PAPERS Message-ID: <182e76f617fc26939108d67373f90fac.squirrel@webmail1.telecom-paristech.fr> ********************************************************************** CALL FOR PAPERS: UML&AADL?2009 http://www.artist-embedded.org/artist/UML-AADL-2009.html Workshop held in conjunction with ICECCS 2009 The fourteenth IEEE International Conference on Engineering of Complex Computer Systems http://www.iceccs.org/ June 02, 2009 Potsdam, Germany ************************************************************************ Submission deadline: February 20, 2009 -------------------------------------- Topics ====== New real-time systems have increasingly complex architectures because of the intricacy of the multiple interdependent features they have to manage. They must meet new requirements of reusability, interoperability, flexibility and portability. These new dimensions favor the use of an architecture description language that offers a global vision of the system, and which is particularly suitable for handling real-time characteristics. Due to the even more increased complexity of distributed, real-time and embedded systems (DRE), the need for a model-driven approach is more obvious in this domain than in monolithic RT systems. The purpose of this workshop is to provide an opportunity to gather researchers and industrial practitioners to survey existing efforts related to behavior modeling and model-based analysis of DRE systems. This workshop seeks contributions from researchers and practitioners interested in all aspects of the representation, analysis, and implementation of DRE system behavior and/or architecture models. To this end, we solicit papers (no more than 6 pages long) related to, but not limited to, the following principal topics: - Multi-domain specific modeling languages - Model transformation and generative approaches - Model-based Methodologies - Integration of different formalisms (e.g., Simulink/StateFlow, StateMate and Scade-drive) - Model Checking of architecture specifications - ADLs behavioral models simulation, Scheduling analysis and Worst-case execution time prediction Workshop Format =============== This full-day workshop will consist of an introduction of the topic by the workshop organizers, presentations of accepted papers, and in depth discussion of previously identified subjects emerging from the submissions. A summary of the discussions will be made available. Submission and Publication ========================== To contribute, please send a position paper or a technical paper to agusti[dot]canals[at]c-s[dot]fr with ?ICECCS09 UML&AADL Workshop? in the title. Papers should not exceed 6 pages. Submitted manuscripts should be in English and formatted in the style of the IEEE Computer Society Proceedings Format. Preferably, submissions should be in PDF format. All selected papers will be published in the IEEE Computer Society Press Proceedings. IMPORTANT DATES =============== Submission deadline: February 20, 2009 All Notification of acceptance: March 05, 2009 Workshop date: June 02, 2009 Organizational sponsors ======================= ARTIST NoE OMG Organizers and Programme Steering Committee =========================================== Jean-Michel Bruel (IRIT, France) Agusti Canals (CS, France) Robert de Simone (INRIA, France) S?bastien G?rard (CEA-LIST, France) Isabelle Perseil (TELECOM ParisTech, France) Publicity Chair =============== Sun Meg (CWI, The Netherlands) IEEE CS TCCX Coordinator ======================== Mike Hinchey (NASA GSFC and Loyola College in Maryland, USA) Programme Committee =================== Yamine Ait Ameur (LISI / ENSMA, France) Keijiro Araki (Kyushu University, Japan) Grady Booch (IBM Fellow, USA) Agusti Canals (CS, France) Juan Antonio de la Puente (Universidad Polit?cnica de Madrid, Spain) Sebastien Demathieu (THALES, France) Dionisio De Niz Villasenor (SEI, Carnegie Mellon, USA) Vincent Englebert (University of Namur, Belgium) Madeleine Faug?re (THALES, France) Mamoun Filali (IRIT, France) Robert France (Colorado State University, USA) S?bastien G?rard (CEA-LIST, France) Patrick Heymans (University of Namur, Belgium) Irfan Hamid (Microsoft Corp, Canada) J.J.M. Hooman (Embedded Systems Institute, The Netherlands) Bruce Lewis (US Army AMCOM) Johan Lilius (?bo Akademi University, Finland) Ricardo J. Machado (University of Minho, Portugal) Sun Meg (CWI, The Netherlands) Dominique Mery (LORIA, France) Nenad Medvidovic (University of Southern California, USA) Thierry Millan (IRIT, France) Richard Paige (University of York, United Kingdom) Marc Reynolds (University of Western Australia, Australia) Jos? Ra?l Romero Salguero (Universidad de C?rdoba, Spain) Bernhard Rumpe (Braunschweig University of Technology, Germany) Douglas C. Schmidt (Vanderbild University, USA) Fran?oise Simonot Lion (LORIA, France) Oleg Sokolsky (University of Pennsylvania, USA) Roy Sterritt (University of Ulster, United Kingdom) J?rn Guy S?? ( University of Queensland, Australia) Jing Sun (University of Auckland, New Zealand) Bedir Tekinerdogan (Bilkent University, Turkey) Martin T?rngren (KTH - Royal Institute of Technology, Sweden) Laurence Tratt (Bournemouth University, United Kingdom) Tullio Vardanega (University of Padua, Italy) Fran?ois Vernadat (CNRS-LAAS, France) Thomas Vergnaud (THALES, France) Eugenio Villar (Universidad de Cantabria, Spain) Sergio Yovine (CNRS-Verimag, France) Roberto V. Zicari (Goethe University Frankfurt, Germany) From ndmitchell at gmail.com Sun Jan 11 17:05:09 2009 From: ndmitchell at gmail.com (Neil Mitchell) Date: Sun Jan 11 16:56:39 2009 Subject: [Haskell] ANN: HLint 1.2 Message-ID: <404396ef0901111405g2b3f4ca2wa13f4c6408c33fee@mail.gmail.com> Hi, I am pleased to announce HLint version 1.2. HLint is a lint-like tool for Haskell that detects and suggests improvements for your code. HLint is compatible with most GHC extensions, and supports a wide variety of suggestions, and can be extended with additional user suggestions. To install: cabal update && cabal install hlint Web page: http://www-users.cs.york.ac.uk/~ndm/hlint/ Biggest new feature: List recursion suggestions. For example, running HLint over the GHC compiler now suggests things such as: Example.hs:3:1: Warning: Use foldr Found: seqList [] b = b seqList (x : xs) b = x `seq` seqList xs b Why not: seqList xs b = foldr seq b xs Example.hs:6:1: Warning: Use foldr Found: seqIds [] = () seqIds (id : ids) = seqId id `seq` seqIds ids Why not: seqIds ids = foldr (seq . seqId) () ids Example.hs:13:1: Warning: Use foldl Found: rev_app [] xs = xs rev_app (y : ys) xs = rev_app ys (y : xs) Why not: rev_app ys xs = foldl (flip (:)) xs ys HLint will automatically detect if you should have used a map, a foldr or a foldl and suggest how to change your code. In the GHC, darcs and Hoogle code bases there are no obvious map-like functions, which is a good sign :-) Changes from last time: * More GHC extensions supported - including record wild cards and fixes to a number of existing extensions. These changes are thanks to Niklas and the haskell-src-exts package. * Many infix operators are now correctly associated with the right priority. * All hints are now ignored, warnings or errors. Hopefully this should make it clearer what hints are most important. As part of this, the format for defining ignore files has changed completely - see the manual for the new format. * Lots of new hints have been added - many from users of HLint. * Many bugs have been fixed. Can any follow-up discussions please be directed to haskell-cafe@. All comments, questions, bug reports are welcome! Neil From dons at galois.com Sun Jan 11 17:26:14 2009 From: dons at galois.com (Don Stewart) Date: Sun Jan 11 17:17:25 2009 Subject: [Haskell] Re: [Haskell-cafe] ANN: HLint 1.2 In-Reply-To: <404396ef0901111405g2b3f4ca2wa13f4c6408c33fee@mail.gmail.com> References: <404396ef0901111405g2b3f4ca2wa13f4c6408c33fee@mail.gmail.com> Message-ID: <20090111222614.GC909@scytale.galois.com> ndmitchell: > Hi, > > I am pleased to announce HLint version 1.2. HLint is a lint-like tool > for Haskell that detects and suggests improvements for your code. > HLint is compatible with most GHC extensions, and supports a wide > variety of suggestions, and can be extended with additional user > suggestions. > > To install: cabal update && cabal install hlint > > Web page: http://www-users.cs.york.ac.uk/~ndm/hlint/ > > Biggest new feature: List recursion suggestions. For example, running > HLint over the GHC compiler now suggests things such as: Arch package, http://aur.archlinux.org/packages.php?ID=23099 Making this the 800th Haskell package on Arch. -- Don From wss at cs.nott.ac.uk Mon Jan 12 10:22:03 2009 From: wss at cs.nott.ac.uk (Wouter Swierstra) Date: Mon Jan 12 10:14:05 2009 Subject: [Haskell] The Monad.Reader (13) - Call for copy Message-ID: <7677DD52-D878-4B07-9EA5-802B44D94451@cs.nott.ac.uk> Call for Copy The Monad.Reader - Issue 13 Please consider writing an article for the next issue of the Monad.Reader. The deadline for the next issue is: ** February 13, 2009 ** * Submission Details * Get in touch with me if you intend to submit something. The sooner you let me know what you're up to, the better. Please submit articles for the next issue to me by e-mail (wss at cs.nott.ac.uk). Articles should be written according to the guidelines available from http://www.haskell.org/haskellwiki/The_Monad.Reader Please submit your article in PDF, together with any source files you used. The sources will be released together with the magazine under a BSD license. If you would like to submit an article, but have trouble with LaTeX please let me know and we'll sort something out. All the best, Wouter This message has been checked for viruses but the contents of an attachment may still contain software viruses, which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. From judah.jacobson at gmail.com Mon Jan 12 15:57:57 2009 From: judah.jacobson at gmail.com (Judah Jacobson) Date: Mon Jan 12 15:49:12 2009 Subject: [Haskell] ANN: ghci-haskeline 0.1 Message-ID: <6d74b0d20901121257q19b953cft2c8dc54b98809ef5@mail.gmail.com> I'm pleased to announce the first release of ghci-haskeline. This package uses the GHC API to reimplement ghci with the Haskeline library as a backend. Haskeline is a library for line input in command-line programs, similar to readline or editline, which is written in Haskell and thus (hopefully) more easily integrated into other Haskell programs. To install, you can use cabal update && cabal install ghci-haskeline, or else download it from: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/ghci-haskeline Haskeline is planned to be used officially with GHC in the 6.12 release: http://hackage.haskell.org/trac/ghc/ticket/2812 So the more testing that can be done ahead of time, the better! For more information about Haskeline or to file a bug or feature request, visit its trac: http://trac.haskell.org/haskeline Finally, a partial list of the benefits of ghci-haskeline over the readline/editline versions: - Full interactive interface on Windows. - Support for a wide variety of character encodings in line interaction (http://trac.haskell.org/haskeline/wiki/UnicodeSupport). Note that GHC source files are still required to be UTF-8. - Tab completion of Unicode identifiers and filenames. - Tab completion of quoted filenames within Haskell expressions. Best, -Judah From andres at cs.uu.nl Mon Jan 12 16:43:58 2009 From: andres at cs.uu.nl (Andres Loeh) Date: Mon Jan 12 16:35:15 2009 Subject: [Haskell] type family vs. polymorphism Message-ID: <20090112214358.GH1529@cs.uu.nl> Hi. Here's a strange interaction of type families and higher-rank polymorphism (tested with both ghc-6.8.3 and ghc-6.10.1): {-# LANGUAGE TypeFamilies, EmptyDataDecls, RankNTypes #-} data X (a :: *) type family Y (a :: *) -- This works (datatype). i1 :: (forall a. X a) -> X Bool i1 x = x -- This works too (type family and extra arg). i2 :: (forall a. a -> Y a) -> Y Bool i2 x = x True -- This doesn't work (type family). -- i3 :: (forall a. Y a) -> Y Bool -- i3 x = x I would expect i3 to be ok as well. Note that this is a simplified example and not really useful in its simplified form. Cheers, Andres -- Andres Loeh, Universiteit Utrecht mailto:andres@cs.uu.nl mailto:mail@andres-loeh.de http://www.andres-loeh.de From leimy2k at gmail.com Mon Jan 12 23:03:15 2009 From: leimy2k at gmail.com (David Leimbach) Date: Mon Jan 12 22:54:29 2009 Subject: [Haskell] ANN: ghci-haskeline 0.1 In-Reply-To: <6d74b0d20901121257q19b953cft2c8dc54b98809ef5@mail.gmail.com> References: <6d74b0d20901121257q19b953cft2c8dc54b98809ef5@mail.gmail.com> Message-ID: <3e1162e60901122003i2270c214w604b29cd0778183d@mail.gmail.com> On Mon, Jan 12, 2009 at 12:57 PM, Judah Jacobson wrote: > I'm pleased to announce the first release of ghci-haskeline. This > package uses the GHC API to reimplement ghci with the Haskeline > library as a backend. Haskeline is a library for line input in > command-line programs, similar to readline or editline, which is > written in Haskell and thus (hopefully) more easily integrated into > other Haskell programs. Awesome! And under my favorite license even! -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090112/fa683767/attachment.htm From leimy2k at gmail.com Mon Jan 12 23:04:18 2009 From: leimy2k at gmail.com (David Leimbach) Date: Mon Jan 12 22:55:33 2009 Subject: [Haskell] ANN: ghci-haskeline 0.1 In-Reply-To: <3e1162e60901122003i2270c214w604b29cd0778183d@mail.gmail.com> References: <6d74b0d20901121257q19b953cft2c8dc54b98809ef5@mail.gmail.com> <3e1162e60901122003i2270c214w604b29cd0778183d@mail.gmail.com> Message-ID: <3e1162e60901122004m4882e609led15f18e35ce9661@mail.gmail.com> On Mon, Jan 12, 2009 at 8:03 PM, David Leimbach wrote: > > > On Mon, Jan 12, 2009 at 12:57 PM, Judah Jacobson > wrote: > >> I'm pleased to announce the first release of ghci-haskeline. This >> package uses the GHC API to reimplement ghci with the Haskeline >> library as a backend. Haskeline is a library for line input in >> command-line programs, similar to readline or editline, which is >> written in Haskell and thus (hopefully) more easily integrated into >> other Haskell programs. > > > Awesome! And under my favorite license even! > Actually, how difficult would it be to write something like rlwrap using haskeline? Then other programs could use this too? Dave -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090112/90de7224/attachment.htm From andres at cs.uu.nl Tue Jan 13 10:05:05 2009 From: andres at cs.uu.nl (Andres Loeh) Date: Tue Jan 13 09:56:19 2009 Subject: [Haskell] ANNOUNCE: multirec-0.2 Message-ID: <20090113150504.GL1529@cs.uu.nl> multirec-0.2: Generic programming with systems of recursive datatypes ===================================================================== Many generic programs require information about the recursive positions of a datatype. Examples include the generic fold, generic rewriting or the Zipper data structure. Several generic programming systems allow to write such functions by viewing datatypes as fixed points of a pattern functor. Traditionally, this view has been limited to so-called regular datatypes such as lists and binary trees. In particular, systems of mutually recursive datatypes have been excluded. With the multirec library, we provide a mechanism to talk about fixed points of systems of datatypes that may be mutually recursive. On top of this representations, generic functions such as the fold or the Zipper can then be defined. Changelog (changes w.r.t. multirec-0.1) --------------------------------------- * Constructor information and generic show (Generics.MultiRec.Show). * Variants of fold (Generics.MultiRec.FoldAlg) that make the definition of algebras significantly more convenient. * Template Haskell code to generate the boilerplate required to instantiate this library to a system of datatypes. Requirements ------------ * GHC 6.8.3 or later * Cabal 1.2.1 or later Download -------- With cabal-install: cabal install multirec Get the package: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/multirec Get the source: svn checkout https://svn.cs.uu.nl:12443/repos/dgp-haskell/multirec/trunk Bugs & Support -------------- Report issues, request features, or just discuss the library with the authors, maintainers, and other interested persons at: http://www.haskell.org/mailman/listinfo/generics -- Andres Loeh, Universiteit Utrecht mailto:andres@cs.uu.nl mailto:mail@andres-loeh.de http://www.andres-loeh.de From andres at cs.uu.nl Tue Jan 13 10:06:26 2009 From: andres at cs.uu.nl (Andres Loeh) Date: Tue Jan 13 09:57:41 2009 Subject: [Haskell] ANNOUNCE: zipper-0.1 Message-ID: <20090113150626.GM1529@cs.uu.nl> zipper-0.1: Generic zipper for systems of recursive datatypes ============================================================= The zipper is a data structure that allows typed navigation on a value. It maintains a subterm as a current point of focus. The rest of the value is the context. Focus and context are automatically updated when navigating up, down, left or right in the value. The term that is in focus can also be modified. This library offers a generic zipper for systems of datatypes. In particular, it is possible to move the focus between subterms of different types, in an entirely type-safe way. This library is built on top of the multirec library, so all that is required to get a zipper for a datatype system is to instantiate the multirec library for that system. Requirements ------------ * GHC 6.8.3 or later * Cabal 1.2.1 or later Download -------- With cabal-install: cabal install zipper Get the package: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/zipper Get the source: svn checkout https://svn.cs.uu.nl:12443/repos/dgp-haskell/zipper/trunk Bugs & Support -------------- Report issues, request features, or just discuss the library with the authors, maintainers, and other interested persons at: http://www.haskell.org/mailman/listinfo/generics -- Andres Loeh, Universiteit Utrecht mailto:andres@cs.uu.nl mailto:mail@andres-loeh.de http://www.andres-loeh.de From bfotsing at gmail.com Tue Jan 13 12:26:52 2009 From: bfotsing at gmail.com (bft) Date: Tue Jan 13 12:18:51 2009 Subject: [Haskell] Help : data & concurrent packages Message-ID: <232143290901130926t372718bdjdc49a0b3b52ab69@mail.gmail.com> Hi ! Can someone tell me where to download the *data* and *concurrent *packages. I need them to build FranTk1.1 package ( http://www.dcs.gla.ac.uk/~meurig/FranTk/news.html) Thanks in advance! BFT frantk.conf file : Package {name = "FranTk", import_dirs = ["/local/www.people/personal/meurig/haskell/built/frantk/imports"], source_dirs = [], library_dirs = ["/local/www.people/personal/meurig/haskell/built/frantk"], hs_libraries = ["HSFranTk"], extra_libraries = ["tcl8.3","tk8.3"], include_dirs = [], c_includes = [], *package_deps = [ "concurrent", "data" ],* extra_ghc_opts = [ "-fvia-C", "-fallow-overlapping-instances", "-fallow-undecidable-instances" ], extra_cc_opts = [], extra_ld_opts = ["-lncurses"] } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090113/b61781f6/attachment.htm From naur at post11.tele.dk Tue Jan 13 16:14:12 2009 From: naur at post11.tele.dk (Thorkil Naur) Date: Tue Jan 13 16:07:01 2009 Subject: [Haskell] Help : data & concurrent packages In-Reply-To: <232143290901130926t372718bdjdc49a0b3b52ab69@mail.gmail.com> References: <232143290901130926t372718bdjdc49a0b3b52ab69@mail.gmail.com> Message-ID: <200901132214.13493.naur@post11.tele.dk> Hello, On Tuesday 13 January 2009 18:26, bft wrote: > Hi ! > Can someone tell me where to download the *data* and *concurrent *packages. I recall data and concurrent packages from some years back, but I would assume that they are merged into the base package nowadays where GHC-6.10.1 is the latest release of GHC. I suggest that you just remove these package dependencies (in case they happen to bother, somehow) and, if any name turns out to be undefined, try http://haskell.org/hoogle/ to search for it. Packages are usually located via http://hackage.haskell.org/packages/hackage.html . > ... Best regards Thorkil From himself at poczta.nom.pl Tue Jan 13 22:37:33 2009 From: himself at poczta.nom.pl (Andrzej Jaworski) Date: Tue Jan 13 22:28:58 2009 Subject: [Haskell] Teach theory then Haskell as example Message-ID: <19A583B4EAE64AF5B767C9865FA0D9D9@bzdryk> Hi, Although it will not help you to know who your grandparent was it is always better to know what reason is behind particular formalism that you use. And the better you know it the further you go with it. So after seeing reappearing questions on the nature and role of fundamental concepts in Haskell I came to a belief that Haskell should be taught via stressing abstract concepts and explaining them rather than downplaying or postponing the explanation. It may look like asking to further expand Haskell's learning curve but I will argue that half learned concepts haunt Haskellers for ever. So, if you teach Haskell as a tool it will always remain a mystery and haunt. My argument is that vice versa should be true: if you explain fundamental concepts in their own right the programmer will gain insight and be able to navigate by power of his own judgment and not by following alchemical recipes. What is more Haskell should be taught on most abstract terms in a framework of higher order logic, types and CT right from the start. Not that it is so different but because: (0) it can afford it (1) it is conductive to abstract thinking by giving more control in structuring the code (2) it matters in what language you think and you cannot think in formalism (you need to root it in models) (3) abstract thinking is more effective (than thinking by example) and is the only way to produce non-trivial solutions. Just browsing book titles in mathematical literature like "The Concept of Number: From Quaternions to Monads and Topological Fields","Monads and automata", "Monads and graphs" should bring confidence that there is deep universe behind Haskell's abstract stuff. So, why try to hide this instead of making direct reference to that unique legacy? Explaining wide roots of Haskell should motivate and disinfect narrow mindedness injected by regular CS courses. Programmers learning Haskell should forget that they are programmers and try to think mathematically. First few years of CS history belonged to mathematicians that for amusement created Fortran and Lisp. Then John McCarthy tried to warn guys proclaiming themselves programmers that to build their skills they should study logic rather than programming. Obviously they haven't listen;-) If abstraction has deep natural roots sooner or later it will unleash its power. Just one funny example: Till 70s the language of category theory was ridiculed even buy guys who used it, like omnipresent Serge Lange. One of the exercises in his "Algebra" (1966) was: "take any book on Homological Algebra and prove all its theorems" (in elementary way). The categories and functors were then used only for the fashion introduced by Bourbaki with their terse and purist writing style. But then surprise, surprise and true reason for homological algebra was discovered - sheaves - which with schemes dramatically extended the horizon for Algebraic Geometry. The irony is that most algebraic geometrists were brought up on Lange's "Algebra":-) Believing that an abstract concept is good for us is not enough however. It must be brought to us with some intuition, otherwise it will be a cumbersome formalism allowing at most to understand someone else ideas dressed in such a language. Intuition is however difficult to upgrade and the strongest your intuition is the most difficult it is to modify it. Albert Einstein was the greatest man of intuition of all time and he had always had very vivid mental model of a theory before dressing it up in mathematics. But it took him 15 years of agonizing struggle to come to general relativity formulae. The same task took Henri Poincare less then a week. Yes, and Poincare published it! But this great guy gave full credit to Einstein on the merit of him originating the problem. There are couple of lessons here: (0) separating formalism from intuition can kill you even if you sit on a solution (2) big things need more than one kind of intuition (3) complex problems can be solved only by abstract concepts (4) nothing is sufficiently abstract, it is an unending race. (it was Grassmann who referred Einstein to tensors and Riemannian geometry but the irony is that General Relativity would look much better in Grassmann algebra. Grassmann however was completely uninterested in making use of his discovery, when he was done with algebra he turned to ... Linguistics where he received his doctorate) (5) abstract thinking is not and cannot be motivated bay practical issues. GR may look abstract but for Poincare it was only another exercise in tensor analysis. So, when he was done with it he was happy to return to abstract issues:-) [that might explain why there are more Haskell theoreticians than real apps;-) ] I dedicate this to those who theach these who will teach the rest:-) -Andrzej From nr at cs.tufts.edu Tue Jan 13 22:50:32 2009 From: nr at cs.tufts.edu (Norman Ramsey) Date: Tue Jan 13 22:41:53 2009 Subject: [Haskell] writing a shell in Haskell Message-ID: <20090114035032.1A301788649@homedog.cs.tufts.edu> As a demo for the first day of class, I thought I'd try to write a simple shell in Haskell, in part so I can show algebraic data types and monads on the first day, but also to convince potential skeptics that functional languages can do systemsy things. All the usual functional stuff is going very nicely, but I don't seem to be able to get my hands on pipe(2) at all, and the language in the documentation for fork() and exec() might as well read Here Be Dragons. Looking for ways to fork, it appears that I have a wealth of abstractions to choose from: System.Process System.Posix.Process IO The 'new' System.Process on the web appears to have some very nice facilities, although it is still not strong enough to do what I want cleanly (capture the output from a command that might be internal or might require me to fork an external process). However, the question is moot because my system seems to have a consistent set of libraries coordinate with the release of GHC 6.8, and I don't know how to put together a consistent set of 'new' libraries to go with 6.10. (I don't even know if such a set exists.) Please advise me: should I give up the idea of writing a shell using GHC and the classic Unix system calls fork/exec/close/pipe? Or if it is possible after all, in what module should I be looking for the proper abstractions? Norman From rodprice at raytheon.com Wed Jan 14 01:10:23 2009 From: rodprice at raytheon.com (Rodney Price) Date: Wed Jan 14 01:04:38 2009 Subject: [Haskell] Teach theory then Haskell as example In-Reply-To: <19A583B4EAE64AF5B767C9865FA0D9D9@bzdryk> References: <19A583B4EAE64AF5B767C9865FA0D9D9@bzdryk> Message-ID: <1231913423.17972.22.camel@jabber> So where do I as a practicing programmer and researcher go to learn all this stuff? My background is theoretical physics (PhD, 1993) so I'm no stranger to math. I've been using Haskell off and on since Haskell 1.4, and while I see lots of theoretical discussions on this list, I have yet to find a Haskell text that gives me a clue where to look. I have the impression that I would have to take three or four graduate courses just to pick up the bits and pieces here and there that I (apparently) need for Haskell. Suggestions? -Rod On Wed, 2009-01-14 at 04:37 +0100, Andrzej Jaworski wrote: > Hi, > Although it will not help you to know who your grandparent was it is always better to know what > reason is behind particular formalism that you use. And the better you know it the further you go > with it. So after seeing reappearing questions on the nature and role of fundamental concepts in > Haskell I came to a belief that Haskell should be taught via stressing abstract concepts and > explaining them rather than downplaying or postponing the explanation. It may look like asking to > further expand Haskell's learning curve but I will argue that half learned concepts haunt Haskellers > for ever. So, if you teach Haskell as a tool it will always remain a mystery and haunt. My argument > is that vice versa should be true: if you explain fundamental concepts in their own right the > programmer will gain insight and be able to navigate by power of his own judgment and not by > following alchemical recipes. What is more Haskell should be taught on most abstract terms in a > framework of higher order logic, types and CT right from the start. Not that it is so different but > because: > (0) it can afford it > (1) it is conductive to abstract thinking by giving more control in structuring the code > (2) it matters in what language you think and you cannot think in formalism (you need to root it in > models) > (3) abstract thinking is more effective (than thinking by example) and is the only way to produce > non-trivial solutions. > > Just browsing book titles in mathematical literature like "The Concept of Number: From Quaternions to > Monads and Topological Fields","Monads > and automata", "Monads and graphs" should bring confidence that there is deep universe behind > Haskell's abstract stuff. So, why try to hide > this instead of making direct reference to that unique legacy? Explaining wide roots of Haskell > should motivate and disinfect narrow mindedness injected by regular CS courses. Programmers learning > Haskell should forget that they are programmers and try to think mathematically. First few years of > CS history belonged to mathematicians that for amusement created Fortran and Lisp. Then John McCarthy > tried to warn guys proclaiming themselves programmers that to build their skills they should study > logic rather than programming. Obviously they haven't listen;-) > > If abstraction has deep natural roots sooner or later it will unleash its power. Just one funny > example: > Till 70s the language of category theory was ridiculed even buy guys who used it, like omnipresent > Serge Lange. One of the exercises in his > "Algebra" (1966) was: "take any book on Homological Algebra and prove all its theorems" (in > elementary way). The categories and functors > were then used only for the fashion introduced by Bourbaki with their terse and purist writing style. > But then surprise, surprise and true reason for homological algebra was discovered - sheaves - which > with schemes dramatically extended the horizon for Algebraic Geometry. The irony is that most > algebraic geometrists were brought up on Lange's "Algebra":-) > > Believing that an abstract concept is good for us is not enough however. It must be brought to us > with some intuition, otherwise it will be > a cumbersome formalism allowing at most to understand someone else ideas dressed in such a language. > Intuition is however difficult to > upgrade and the strongest your intuition is the most difficult it is to modify it. Albert Einstein > was the greatest man of intuition of all > time and he had always had very vivid mental model of a theory before dressing it up in mathematics. > But it took him 15 years of agonizing > struggle to come to general relativity formulae. The same task took Henri Poincare less then a week. > Yes, and Poincare published it! But this > great guy gave full credit to Einstein on the merit of him originating the problem. There are couple > of lessons here: > (0) separating formalism from intuition can kill you even if you sit on a solution > (2) big things need more than one kind of intuition > (3) complex problems can be solved only by abstract concepts > (4) nothing is sufficiently abstract, it is an unending race. (it was Grassmann who referred Einstein > to tensors and Riemannian geometry but the irony is that General Relativity would look much better in > Grassmann algebra. Grassmann however was completely uninterested in > making use of his discovery, when he was done with algebra he turned to ... Linguistics where he > received his doctorate) > (5) abstract thinking is not and cannot be motivated bay practical issues. GR may look abstract but > for Poincare it was only another exercise > in tensor analysis. So, when he was done with it he was happy to return to abstract issues:-) [that > might explain why there are more Haskell > theoreticians than real apps;-) ] > > I dedicate this to those who theach these who will teach the rest:-) > -Andrzej > > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell From v.dijk.bas at gmail.com Wed Jan 14 02:34:24 2009 From: v.dijk.bas at gmail.com (Bas van Dijk) Date: Wed Jan 14 02:25:35 2009 Subject: [Haskell] writing a shell in Haskell In-Reply-To: <20090114035032.1A301788649@homedog.cs.tufts.edu> References: <20090114035032.1A301788649@homedog.cs.tufts.edu> Message-ID: Have a look at John Goerzen's HSH and Thomas Hartman's HSHHelpers: http://software.complete.org/software/wiki/hsh/ http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HSH http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HSHHelpers regards, Bas From DekuDekuplex at Yahoo.com Wed Jan 14 06:05:38 2009 From: DekuDekuplex at Yahoo.com (Benjamin L.Russell) Date: Wed Jan 14 05:57:04 2009 Subject: [Haskell] Re: Teach theory then Haskell as example References: <19A583B4EAE64AF5B767C9865FA0D9D9@bzdryk> Message-ID: On Wed, 14 Jan 2009 04:37:33 +0100, "Andrzej Jaworski" wrote: >[...] > >Programmers learning Haskell should forget that they are programmers and try to think mathematically. Along that line, then, for example, where would you place, say, _The Haskell Road to Logic, Maths and Programming_ (see http://homepages.cwi.nl/~jve/HR/)? That book does not seem to focus on category theory, though; would you recommend an alternative book on that subject? If so, then which of the following would you recommend (these are just a few that I know of): Category Theory Books: Conceptual Mathematics: A First Introduction to Categories (Paperback) An elementary introduction http://www.amazon.com/Conceptual-Mathematics-First-Introduction-Categories/dp/0521478170 An introduction to category theory in four easy movements A somewhat informal, reportedly in-depth introduction to category theory, which some students have described as being intricately layered http://www.cs.man.ac.uk/~hsimmons/BOOKS/CatTheory.pdf Category Theory by Magic A somewhat more advanced text than _An introduction to category theory in four easy movements_ http://www.cs.man.ac.uk/~hsimmons/MAGIC-CATS/CourseNotes.pdf Toposes, Triples and Theories An often-referenced introduction to category theory, reportedly discussing monads as "triples" http://www.cwru.edu/artsci/math/wells/pub/ttt.html Categories and Computer Science Reportedly a straightforward introduction to category theory, with many examples from computer science http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=0521419972 Arrow, Structures and Functors - The Categorical Imperative According to the HaskellWiki page on category theory (see http://haskell.org/haskellwiki/Category_theory), an out-of-print book covering monads and the Yoneda lemma, with very little prerequisite knowledge Category Theory Lecture Notes: Category Theory Lecture Notes for ESSLLI Distilled version of _Toposes, Triples and Theories,_ discussing category theory from a computer science perspective http://www.math.upatras.gr/~cdrossos/Docs/B-W-LectureNotes.pdf A Gentle Introduction to Category Theory - the calculational approach Another set of lecture notes referenced on the HaskellWiki page on category theory http://wwwhome.cs.utwente.nl/~fokkinga/mmf92b.html One difficulty with the above titles is that they do not provide Haskell-specific programming examples to help to illustrate the concepts. To address this problem, would you recommend books on categorical programming with examples in Haskell? Categorical Programming with Examples in Haskell: Categorical Programming with Inductive and Coinductive Types A thesis on categorical programming, exploring inductive and coinductive types, and several programming constructs related to them in Haskell http://www.cs.ut.ee/~varmo/papers/thesis.pdf (Actually, I just discovered the last title on the above HaskellWiki page on category theory.) If you have any other specific titles to recommend in category theory, for students of various levels of mathematical proficiency and computer science background, I would be very interested. I would believe that having specific Haskell code to help interact with the categorical examples would help to motivate study of the abstract theory for many programmers. One problem that many people have with studying abstract theory in isolation is that they often tend to lose motivation unless they can see how the theory directly relates to and influences the semantics and data structures in the code. Having specific examples of Haskell code to tie together immediately with the abstract theory would most likely help to motivate and maintain interest. -- Benjamin L. Russell -- Benjamin L. Russell / DekuDekuplex at Yahoo dot com http://dekudekuplex.wordpress.com/ Translator/Interpreter / Mobile: +011 81 80-3603-6725 "Furuike ya, kawazu tobikomu mizu no oto." -- Matsuo Basho^ From himself at poczta.nom.pl Wed Jan 14 23:12:19 2009 From: himself at poczta.nom.pl (Andrzej Jaworski) Date: Wed Jan 14 23:03:42 2009 Subject: [Haskell] Re: Teach theory then Haskell as example References: <19A583B4EAE64AF5B767C9865FA0D9D9@bzdryk> Message-ID: If such guys like you two have problem then Haskell is in a dire trouble! To my knowledge the best theoretical writing on functional programming was done around Categorical Machine and Caml. You need to speak Caml/ML to read Benjamin Pierce, Chris Okasaki or use Huet's course/software (http://pauillac.inria.fr/~huet/CCT). Even "The Functional Approach to Programming with Caml" feels for mathematician better than the analogous Haskell stuff. Some of this however cannot be made easily accessible for us because Haskell's module system has been joyfully messed up, which is partly responsible for the need to patch Haskell with a piece of logic here and there (Tamplet Haskell and other extensions) and make Haskell tilt towards logic and away from Categorical Machine. Thus the introduction to its theoretical foundations should follow from higher order logic to Category Theory as its necessity (higher order logic has real sense only when category theory foundations for mathematics are considered, mathematics based on axioms can be proven by much simpler first order logic). There is as yet no such book but there are many very good articles addressing specific issues of Haskell's theoretical foundations (e.g. http://www.cs.ut.ee/~varmo/papers/thesis.pdf). They however always assume more than they target to explain making student turn around them like a dog not knowing which ball to catch first. What we need is a meaningful introduction covering all Haskell's high level concepts, demonstrating convincingly their usefulness and their interplay where it is possible. It is not enough to explain concepts as a collection, whether simplified (http://www.cs.unibo.it/~asperti/PAPERS/book.pdf) or written for mathematicians (equally dull formalism for someone lacking adequate "mathematical maturity"; also mathematicians can afford to consider large collections while you need to see things in action). Doets and Eijck show good approach but their mathematics is too trivial (e.g. combinatorics should be presented via lattice theory like Rota taught). They also miss the boat presenting Haskell (no higher gear at all). The concepts might be introduced as problem solvers or as explaining each other like in Tatsuja Hagino's "Categorical investigation of types" (http://www.tom.sfc.keio.ac.jp/~hagino/thesis.pdf ). Intuition should get strong priority over completeness. Building intuition is however closer to athlete's training than to body building. A boxer or swimmer don't build one muscle independently from another. One muscle must trigger action of another and be goal oriented. If a boxer treated his body as a collection of muscles and worked on them independently he would not survive 10 seconds of fight. Likewise concepts cannot be addressed in isolation from each other. Any presentation might be good enough as long as it gives justice to the concepts, presents them all in one place and gives clues how to reinforce their use. The introduction to the theory should also set high aesthetic standard, easy to achieve due to pure mathematical components. This should equip programmers prone to dirty tricks with a sort of gyroscope, so if he later chooses to puke he should at least remember what the taste of beer was;-) I am done but if somebody feels like adding something take it to Haskell-cafe please. -Cheers From ifl2009 at shu.edu Thu Jan 15 12:09:21 2009 From: ifl2009 at shu.edu (IFL 2009) Date: Thu Jan 15 12:00:39 2009 Subject: [Haskell] IFL 2009: Call for Papers Message-ID: Call for Papers IFL 2009 Seton Hall University SOUTH ORANGE, NJ, USA http://tltc.shu.edu/blogs/projects/IFL2009/ The 21st IFL symposium, IFL 2009, will be held for the first time in the USA. The hosting institution is Seton Hall University in South Orange, NJ, USA and the symposium dates are September 23-25, 2009. It is our goal to make IFL a regular event held in the USA. The goal of the IFL symposia is to bring together researchers actively engaged in the implementation and application of functional and function-based programming languages. IFL 2009 will be a venue for researchers to present and discuss new ideas and concepts, work in progress, and publication-ripe results related to the implementation and application of functional languages and function-based programming. Following the IFL tradition, IFL 2009 will use a post-symposium review process to produce a formal proceedings which we expect to be published by Springer in the Lecture Notes in Computer Science series. All participants in IFL 2009 are invited to submit either a draft paper or and extended abstract describing work to be presented at the symposium. These submissions will be screened by the program committee chair to make sure they are within the scope of IFL and will appear in the draft proceedings distributed at the symposium. Submissions appearing in the draft proceedings are not peer-reviewed publications. After the symposium, authors will be given the opportunity to incorporate the feedback from discussions at the symposium and will be invited to submit a revised full arcticle for the formal review process. These revised submissions will be reviewed by the program committee using prevailing academic standards to select the best articles that will appear in the formal proceedings. TOPICS IFL welcomes submissions describing practical and theoretical as well as submissions describing applications and tools. If you are not sure if your work is appropriate for IFL 2009, please contact the PC chair at ifl2009@shu.edu. Topics of interest include, but are not limited to: language concepts type checking contracts compilation techniques staged compilation runtime function specialization runtime code generation partial evaluation (abstract) interpretation generic programming techniques automatic program generation array processing concurrent/parallel programming concurrent/parallel program execution functional programming and embedded systems functional programming and web applications functional programming and security novel memory management techniques runtime profiling and performance measurements debugging and tracing virtual/abstract machine architectures validation and verification of functional programs tools and programming techniques PAPER SUBMISSIONS Prospective authors are encouraged to submit papers or extended abstracts to be published in the draft proceedings and to present them at the symposium. All contributions must be written in English, conform to the Springer-Verlag LNCS series format and not exceed 16 pages. The draft proceedings will appear as a technical report of the Department of Mathematics and Computer Science of Seton Hall University. IMPORTANT DATES Registration deadline August 15, 2009 Presentation submission deadline August 15, 2009 IFL 2009 Symposium September 23-25, 2009 Submission for review process deadline November 1, 2009 Notification Accept/Reject December 22, 2009 Camera ready version January 15, 2010 PROGRAM COMMITTEE Peter Achten University of Nijmegen, The Netherlands Jost Berthold Philipps-Universit?t Marburg, Germany Andrew Butterfield University of Dublin, Ireland Robby Findler Northwestern University, USA Kathleen Fisher AT&T Research, USA Cormac Flanagan University of California at Santa Cruz, USA Matthew Flatt University of Utah, USA Matthew Fluet Toyota Technological Institute at Chicago, USA Daniel Friedman Indiana University, USA Andy Gill University of Kansas, USA Clemens Grelck University of Amsterdam/Hertfordshire, The Netherlands/UK Jurriaan Hage Utrecht University, The Netherlands Ralf Hinze Oxford University, UK Paul Hudak Yale University, USA John Hughes Chalmers University of Technology, Sweden Patricia Johann University of Strathclyde, UK Yukiyoshi Kameyama University of Tsukuba, Japan Marco T. Moraz?n (Chair) Seton Hall University, USA Rex Page University of Oklahoma, USA Fernando Rubio Universidad Complutense de Madrid, Spain Sven-Bodo Scholz University of Hertfordshire, UK Manuel Serrano INRIA Sophia-Antipolis, France Chung-chieh Shan Rutgers University, USA David Walker Princeton University, USA Vikt?ria Zs?k E?tv?s Lor?nd University, Hungary PETER LANDIN PRIZE The Peter Landin Prize is awarded to the best paper presented at the symposium every year. The honored article is selected by the program committee based on the submissions received for the formal review process. The prize carries a cash award equivalent to 150 euros. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090115/f6944183/attachment.htm From apfelmus at quantentunnel.de Fri Jan 16 05:00:48 2009 From: apfelmus at quantentunnel.de (Apfelmus, Heinrich) Date: Fri Jan 16 04:51:28 2009 Subject: [Haskell] Re: Teach theory then Haskell as example In-Reply-To: <1231913423.17972.22.camel@jabber> References: <19A583B4EAE64AF5B767C9865FA0D9D9@bzdryk> <1231913423.17972.22.camel@jabber> Message-ID: Rodney Price wrote: > So where do I as a practicing programmer and researcher go to learn all > this stuff? My background is theoretical physics (PhD, 1993) so I'm no > stranger to math. I've been using Haskell off and on since Haskell 1.4, > and while I see lots of theoretical discussions on this list, I have yet > to find a Haskell text that gives me a clue where to look. I have the > impression that I would have to take three or four graduate courses just > to pick up the bits and pieces here and there that I (apparently) need > for Haskell. Suggestions? > > -Rod The Haskellwiki is a pretty good resource aggregator http://www.haskell.org/haskellwiki/Category_theory In the long term, the aim of the Haskell Wikibook is to become a gentle introduction to "this stuff. It's nowhere near finished yet, but there's already some preliminary material http://en.wikibooks.org/wiki/Haskell/Category_theory Regards, H. Apfelmus From jas at di.uminho.pt Fri Jan 16 06:59:15 2009 From: jas at di.uminho.pt (=?ISO-8859-1?Q?Jo=E3o?= Saraiva) Date: Fri Jan 16 06:50:22 2009 Subject: [Haskell] GTTSE 2009 --- First call for participation (06-11 July 2009) Message-ID: <1232107155.3509.15.camel@localhost.localdomain> GTTSE 2009, 06-11 July, 2009, Braga, Portugal 3rd International Summer School on Generative and Transformational Techniques in Software Engineering http://gttse.wikidot.com/ SCOPE AND FORMAT The biannual, week-long GTTSE summer school brings together PhD students, lecturers, as well as researchers and practitioners who are interested in the generation and the transformation of programs, data, software models, data models, metamodels, documentation, and entire software systems. The GTTSE school draws from several areas of the broad software engineering and programming language communities, in particular: software reverse and re-engineering, model-driven software development, program calculation, generic language technology, generative programming, aspect-oriented programming, and compiler construction. The GTTSE school presents the state of the art in automated software engineering and software language engineering: foundations, methods, tools, and case studies. The school's scientific program consists of three modules: 8 full tutorials (see below for a list of speakers and topics), 8 short tutorials (see the website for this part; under construction), and a half day-long participants' workshop. Each of the (8) full tutorials takes 3 hours of plenary time of GTTSE's week-long schedule. These tutorials are given by "veterans" of the field. Each of the (8) short(er) tutorials takes 20 mins of plenary time and approximately 90 mins of "parallel" time (with typically 2 sessions in parallel). These tutorials are (also) by invitation only. Most if not all tutorials will be complemented by articles in the proceedings of the school. The participants' workshop features presentations that were selected among the proposals submitted by the participants (who are typically PhD students). The idea is here to provide committed junior researchers with a slot to present their relevant research and to receive highly qualified feedback from the senior researchers at the school. This time, GTTSE features an award, sponsored by SIG (The Software Improvement Group), to be given to the best presenter at the participants' workshop. After the school, all participants of the school can submit an article for peer review to the post-proceedings. In the past, about 25% of these submissions were selected by the scientific committee to be included in the post-proceedings. All material presented at the school will be collected in informal proceedings to be handed out solely to the participants. Formal and public post-proceedings will be compiled after the summer school where all contributions are subjected to reviewing. Subject to Springer's approval, the post-proceedings of the school will be published in a volume of the Lecture Notes in Computer Science series of Springer-Verlag. The post-proceedings of the previous two instances of the summer school (2005 and 2007) were published as LNCS volumes 4143 and 5235. FULL TUTORIALS * Software Product Line Refactoring Paulo Borba, Universidade Federal de Pernambuco, Recife, Brazil * The TXL Source Transformation Cookbook James R. Cordy, Queen's University, Kingston, Canada * Chasing Diagrams in the Mapping Forests of Model Transformations Zinovy Diskin, University of Waterloo and Univ. of Toronto, Canada * Generating Language Tools with JastAdd G?rel Hedin, Lund Institute of Technology, Sweden. * Model Driven Language Engineering with Kermeta Jean-Marc J?z?quel, IRISA, Rennes, France * Rascal: Meta-programming Made Easy Paul Klint, CWI and Universiteit van Amsterdam, Netherlands * Sourcerer: Slicing and Dicing Large Amounts of Open Source Code Cristina Videira Lopes, University of California, Irvine, USA * Theory & Practice of Modeling Language Design for Model-Based Engineering Bran Selic, Malina Software Corp., Canada ORGANIZATION COMMITTEE * Jo?o M. Fernandes (Program Co-Chair), Universidade do Minho, Portugal * Ralf L?mmel (Program Co-Chair), Universit?t Koblenz-Landau, Germany * Jo?o Saraiva, Universidade do Minho, Portugal * Joost Visser, Software Improvement Group, The Netherlands ADDITIONAL INFORMATION For additional information on the program, venue, and other details of the summer school, please consult the web page: http://gttse.wikidot.com/ Note that registration for the summer school will open in February 2009. Before that time, those who wish to be notified personally when registration opens are welcome to send an expression of interest to gttse2009 AT list.uni-koblenz.de From bayer at cpw.math.columbia.edu Fri Jan 16 10:46:45 2009 From: bayer at cpw.math.columbia.edu (Dave Bayer) Date: Fri Jan 16 10:37:51 2009 Subject: [Haskell] Re: Teach theory then Haskell as example In-Reply-To: References: <19A583B4EAE64AF5B767C9865FA0D9D9@bzdryk> <1231913423.17972.22.camel@jabber> Message-ID: On Jan 16, 2009, at 2:00 AM, Apfelmus, Heinrich wrote: > Rodney Price wrote: >> So where do I as a practicing programmer and researcher go to learn >> all >> this stuff? ... > In the long term, the aim of the Haskell Wikibook is to become a > gentle > introduction to "this stuff. It's nowhere near finished yet, but > there's > already some preliminary material > > http://en.wikibooks.org/wiki/Haskell/Category_theory As a mathematician, Haskell has renewed my interest in category theory. I had thought one learns category theory most easily at age 20, because it paints such an eviscerated view of flesh-and-blood subjects like geometry, but at age 20 one doesn't care. Now, it is clear to me that functional programming is THE application of category theory. They're both about combining functions. If one wants to become fluent at combining functions, one needs an operational understanding of category theory, whether or not one likes the formal language. I'm struck, reading various papers that translate functional programming constructs back to category theory, how messy something simple in Haskell has to look in classical category theory, because Haskell is "higher order" and classical category theory is not. What some people might like is a no-holds-barred intro to category theory that updates it to fit Haskell, with a higher order presentation reworking the theory to match current functional programming practice. I'm the wrong person to try to write this, but I may, to teach myself. Among the intro texts out there, \bib{MR1120026}{book}{ author={Pierce, Benjamin C.}, title={Basic category theory for computer scientists}, series={Foundations of Computing Series}, publisher={MIT Press}, place={Cambridge, MA}, date={1991}, pages={xiv+100}, isbn={0-262-66071-7}, review={\MR{1120026 (93c:18002)}}, } is excellent, with a functional programming focus. From max.rabkin at gmail.com Fri Jan 16 13:15:21 2009 From: max.rabkin at gmail.com (Max Rabkin) Date: Fri Jan 16 13:06:25 2009 Subject: [Haskell] Re: Teach theory then Haskell as example In-Reply-To: References: <19A583B4EAE64AF5B767C9865FA0D9D9@bzdryk> <1231913423.17972.22.camel@jabber> Message-ID: On Fri, Jan 16, 2009 at 7:46 AM, Dave Bayer wrote: > As a mathematician, Haskell has renewed my interest in category theory. I > had thought one learns category theory most easily at age 20, because it > paints such an eviscerated view of flesh-and-blood subjects like geometry, > but at age 20 one doesn't care. Yep, 20 year olds like me like to see the guts ripped out of geometry (actually, my dislike of geometry probably peaked around 17, but nevertheless I like what I've seen of category theory). Hopefully I'll still like category theory when I'm 21 and I'm taking a course in it :) > I'm struck, reading various papers that translate functional programming > constructs back to category theory, how messy something simple in Haskell > has to look in classical category theory, because Haskell is "higher order" > and classical category theory is not. I believe this is what higher-dimensional category theory is about, and my understanding is that even going a few dimensions up makes things significantly more difficult (and things that are "obviously" equivalent become hard to prove so). Haskell of course has no bounds on the dimension (you can use millionth-order functions if you like, though I don't know if you'll have success on a real-world compiler). > Among the intro texts out there, > > \bib{MR1120026}{book}{ > author={Pierce, Benjamin C.}, > title={Basic category theory for computer scientists}, > series={Foundations of Computing Series}, > publisher={MIT Press}, > place={Cambridge, MA}, > date={1991}, > pages={xiv+100}, > isbn={0-262-66071-7}, > review={\MR{1120026 (93c:18002)}}, > } > > is excellent, with a functional programming focus. Good to have a recommendation -- my future CT lecturer has a hard time recommending anything not written by Mac Lane. --Max From bjorn.buckwalter at gmail.com Sat Jan 17 00:23:13 2009 From: bjorn.buckwalter at gmail.com (Bjorn Buckwalter) Date: Sat Jan 17 00:14:23 2009 Subject: [Haskell] ANN: leapseconds-announced-2009 Message-ID: <8b2a1a960901162123w12d9cdcapbd7610ef7e568996@mail.gmail.com> Dear all, I'm pleased to announce the upload of the leapseconds-announced package[1] to Hackage. leapseconds-announced contains a single module and a single function implementing the Data.Time.Clock.TAI.LeapSecondTable interface (type). The documentation[2] for Data.Time.Clock.TAI.LeapSecondTable says "No table is provided, as any program compiled with it would become out of date in six months" and with that I have no objections. However, I frequently find myself needing a LeapSecondTable for a quick-and-dirty one-off analysis or simulation of the present or past. In these cases I've lazily used "(const 33)" (or more recently: "(const 34)") as my LeapSecondTable. leapseconds-announced is a pragmatic, if imperfect, improvement over my past practices. It provides a LeapSecondTable with all leap seconds announced to date (hence the name). Once the IERS announces[3] another leap second the package will need an update and all code using it a recompile. While this precludes its use in long-running production applications it is eminently adequate for my one-off uses or for applications that can afford to recompile infrequently. While, in the words of the Data.Time.Clock.TAI documentation, "most people won't need this module" I hope it can be of utility to someone. Thanks, Bjorn Buckwalter [1] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/leapseconds-announced [2] http://www.haskell.org/ghc/docs/latest/html/libraries/time/Data-Time-Clock-TAI.html [3] http://hpiers.obspm.fr/eoppc/bul/bulc/bulletinc.dat From jeff at nokrev.com Sat Jan 17 13:33:04 2009 From: jeff at nokrev.com (Jeff Wheeler) Date: Sat Jan 17 13:24:06 2009 Subject: [Haskell] An Alternative Data.List.Zipper Message-ID: <1232217185.20946.1.camel@ulysses> Hi, (I also sent this to libraries@, but without response; I'm posting here for a wider audience.) I'm somewhat of a beginner in Haskell, so take what I say with a grain of salt, please. The ListZipper implementation seems very odd to me, and #haskell seemed to agree with me. The current package implements a Zipper with > data Zipper = Zipper ![a] ![a] which allows for empty zippers, among other things. Very strange to me. It also seems unnecessarily strict. There are also no expected typeclasses implemented, like Foldable or Traversable. I thought it would be interesting to try fixing these problems with a much cleaner design, and I'd like to share what I came up with: http://hpaste.org/14030 I'd very much appreciate some criticism of the code so that I can improve it. I'm not sure how best to provide this alternative on Hackage; should we make this merely a newer version of the old library, provide it in a conflicting package, or find a new namespace for it and provide it there? Thanks, Jeff Wheeler From max.rabkin at gmail.com Sat Jan 17 13:44:25 2009 From: max.rabkin at gmail.com (Max Rabkin) Date: Sat Jan 17 13:35:28 2009 Subject: [Haskell] An Alternative Data.List.Zipper In-Reply-To: <1232217185.20946.1.camel@ulysses> References: <1232217185.20946.1.camel@ulysses> Message-ID: This traverses the list three times (reverse, init and last are each linear time): fromListEnd xs = Zipper (reverse $ init xs) (last xs) [] But we only need to do it once: fromListEnd xs = let x:xs' = reverse xs in Zipper xs' x [] I don't *think* this has an effect on strictness/laziness, since both versions are strict in the spine of the list. --Max On Sat, Jan 17, 2009 at 10:33 AM, Jeff Wheeler wrote: > Hi, > > (I also sent this to libraries@, but without response; I'm posting here > for a wider audience.) > > I'm somewhat of a beginner in Haskell, so take what I say with a grain > of salt, please. > > The ListZipper implementation seems very odd to me, and #haskell seemed > to agree with me. The current package implements a Zipper with > >> data Zipper = Zipper ![a] ![a] > > which allows for empty zippers, among other things. Very strange to me. > It also seems unnecessarily strict. There are also no expected > typeclasses implemented, like Foldable or Traversable. > > I thought it would be interesting to try fixing these problems with a > much cleaner design, and I'd like to share what I came up with: > > http://hpaste.org/14030 > > I'd very much appreciate some criticism of the code so that I can > improve it. > > I'm not sure how best to provide this alternative on Hackage; should we > make this merely a newer version of the old library, provide it in a > conflicting package, or find a new namespace for it and provide it > there? > > Thanks, > > Jeff Wheeler > > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > From jeff at nokrev.com Sat Jan 17 13:58:04 2009 From: jeff at nokrev.com (Jeff Wheeler) Date: Sat Jan 17 13:49:12 2009 Subject: [Haskell] An Alternative Data.List.Zipper In-Reply-To: References: <1232217185.20946.1.camel@ulysses> Message-ID: <1232218684.20946.3.camel@ulysses> On Sat, 2009-01-17 at 10:44 -0800, Max Rabkin wrote: > This traverses the list three times (reverse, init and last are each > linear time): > fromListEnd xs = Zipper (reverse $ init xs) (last xs) [] > > But we only need to do it once: > fromListEnd xs = let x:xs' = reverse xs in Zipper xs' x [] > > I don't *think* this has an effect on strictness/laziness, since both > versions are strict in the spine of the list. Excellent suggestion; your solution is much more readable and faster. I've made the change here: http://hpaste.org/14030#a1 Thanks, Jeff Wheeler From jeff at nokrev.com Sat Jan 17 16:32:13 2009 From: jeff at nokrev.com (Jeff Wheeler) Date: Sat Jan 17 16:23:14 2009 Subject: [Haskell] An Alternative Data.List.Zipper In-Reply-To: <953e0d250901171255n146a730cqc47da54eea611e64@mail.gmail.com> References: <1232217185.20946.1.camel@ulysses> <953e0d250901171255n146a730cqc47da54eea611e64@mail.gmail.com> Message-ID: <1232227933.20946.9.camel@ulysses> On Sat, 2009-01-17 at 21:55 +0100, Jean-Philippe Bernardy wrote: > I think it should admit empty, and the traversable instance should > traverse the first list in reverse. I fixed the latter issue so that the behavior is correct (I think). I tested it like this: > forM (next $ next $ fromList [1..5]) $ \i -> do { print i; return i } 1 2 3 4 5 [1,2] 3 [4,5] which I believe is proper. I'm undecided about allowing them to be empty. I don't know the theory or math behind zippers (I'm sure there are some papers written about it), but it doesn't make much sense to be empty. I got that impression from #haskell, also. Thanks for the comments. :) Jeff Wheeler From dave at zednenem.com Sat Jan 17 17:41:09 2009 From: dave at zednenem.com (David Menendez) Date: Sat Jan 17 17:32:09 2009 Subject: [Haskell] An Alternative Data.List.Zipper In-Reply-To: <1232227933.20946.9.camel@ulysses> References: <1232217185.20946.1.camel@ulysses> <953e0d250901171255n146a730cqc47da54eea611e64@mail.gmail.com> <1232227933.20946.9.camel@ulysses> Message-ID: <49a77b7a0901171441v332dce4es6e117fb587786495@mail.gmail.com> On Sat, Jan 17, 2009 at 4:32 PM, Jeff Wheeler wrote: > On Sat, 2009-01-17 at 21:55 +0100, Jean-Philippe Bernardy wrote: > >> I think it should admit empty, and the traversable instance should >> traverse the first list in reverse. > > I fixed the latter issue so that the behavior is correct (I think). That's correct, but I think you'd be better off defining OpApplicative (or Backward, as I call it) locally and avoiding the two reverses. > I'm undecided about allowing them to be empty. I don't know the theory > or math behind zippers (I'm sure there are some papers written about > it), but it doesn't make much sense to be empty. I got that impression > from #haskell, also. If you look at a zipper as a list with a selected element, then it doesn't make sense to talk about a zipper of an empty list. That being said, I'd prefer fromList to have the type [a] -> Maybe (Zipper a), and similarly with next and previous. If people want to live dangerously, they can use fromJust. -- Dave Menendez From dons at galois.com Sat Jan 17 19:18:57 2009 From: dons at galois.com (Don Stewart) Date: Sat Jan 17 19:10:15 2009 Subject: [Haskell] Re: [Haskell-cafe] ANNOUNCE: Coadjute 0.0.1, generic build tool In-Reply-To: References: Message-ID: <20090118001857.GO4786@scytale.galois.com> matti.niemenmaa+news: > Announcing the release of Coadjute, version 0.0.1! > > Web site: http://iki.fi/matti.niemenmaa/coadjute/ > Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Coadjute > Here's an Arch Linux package for it, http://aur.archlinux.org/packages.php?ID=23237 From jeff at nokrev.com Sat Jan 17 19:49:05 2009 From: jeff at nokrev.com (Jeff Wheeler) Date: Sat Jan 17 19:40:19 2009 Subject: [Haskell] An Alternative Data.List.Zipper In-Reply-To: <49a77b7a0901171441v332dce4es6e117fb587786495@mail.gmail.com> References: <1232217185.20946.1.camel@ulysses> <953e0d250901171255n146a730cqc47da54eea611e64@mail.gmail.com> <1232227933.20946.9.camel@ulysses> <49a77b7a0901171441v332dce4es6e117fb587786495@mail.gmail.com> Message-ID: <1232239745.32027.17.camel@ulysses> On Sat, 2009-01-17 at 17:41 -0500, David Menendez wrote: > That's correct, but I think you'd be better off defining OpApplicative > (or Backward, as I call it) locally and avoiding the two reverses. I'll have to look into this more; I don't really understand applicatives right now, so I can't use them yet. :) > If you look at a zipper as a list with a selected element, then it > doesn't make sense to talk about a zipper of an empty list. Apparently a zipper can be empty, as the focus is the rest of the list, not the current element. It seems that my file is not a Zipper, but rather a PointedList (thanks to roconner in #haskell). Therefore, I've changed my file to use the new name throughout, including a new module name. With this change, I think it's now appropriate to post on Hackage. > That being said, I'd prefer fromList to have the type [a] -> Maybe > (Zipper a), and similarly with next and previous. If people want to > live dangerously, they can use fromJust. I agree, and I've made this change. I found this annoying on next/previous though, so I've created a tryNext/tryPrevious that'll return an unchanged PointedList if it's already on the end. Here's the new version: http://hpaste.org/14030#a5 Thanks for the feedback, Jeff Wheeler From dave at zednenem.com Sat Jan 17 20:11:32 2009 From: dave at zednenem.com (David Menendez) Date: Sat Jan 17 20:02:32 2009 Subject: [Haskell] An Alternative Data.List.Zipper In-Reply-To: <1232239745.32027.17.camel@ulysses> References: <1232217185.20946.1.camel@ulysses> <953e0d250901171255n146a730cqc47da54eea611e64@mail.gmail.com> <1232227933.20946.9.camel@ulysses> <49a77b7a0901171441v332dce4es6e117fb587786495@mail.gmail.com> <1232239745.32027.17.camel@ulysses> Message-ID: <49a77b7a0901171711q5b1da251g1ec7d6a3b0c7cab5@mail.gmail.com> On Sat, Jan 17, 2009 at 7:49 PM, Jeff Wheeler wrote: > On Sat, 2009-01-17 at 17:41 -0500, David Menendez wrote: >> That's correct, but I think you'd be better off defining OpApplicative >> (or Backward, as I call it) locally and avoiding the two reverses. > > I'll have to look into this more; I don't really understand applicatives > right now, so I can't use them yet. :) newtype Backwards f a = B { unB :: f a } instance Functor f => Functor (Backwards f) where fmap f = B . fmap f . unB instance Applicative f => Applicative (Backwards f) where pure = B . pure f <*> x = B (unB f <**> unB x) traverseBackwards :: (Traversable t, Applicative f) = (a -> f b) -> t a -> t (f b) traverseBackwards f = unB . traverse (B . f) >> If you look at a zipper as a list with a selected element, then it >> doesn't make sense to talk about a zipper of an empty list. > > Apparently a zipper can be empty, as the focus is the rest of the list, > not the current element. It seems that my file is not a Zipper, but > rather a PointedList (thanks to roconner in #haskell). This may be terminological confusion. I would have said that a PointedList *is* a zipper. Certainly, from the standpoint that zippers are comonads, you can't have an empty zipper, because you always need to be able to retrieve the selected value. >> That being said, I'd prefer fromList to have the type [a] -> Maybe >> (Zipper a), and similarly with next and previous. If people want to >> live dangerously, they can use fromJust. > > I agree, and I've made this change. I found this annoying on > next/previous though, so I've created a tryNext/tryPrevious that'll > return an unchanged PointedList if it's already on the end. I would define tryNext in terms of next, rather than the other way around, but I guess it shouldn't make much difference. I'm also not sure that returning the original pointed list is a good idea, since trying to move beyond the boundaries of the zipper will usually be an error. -- Dave Menendez From ajb at spamcop.net Sat Jan 17 20:33:34 2009 From: ajb at spamcop.net (ajb@spamcop.net) Date: Sat Jan 17 20:24:39 2009 Subject: [Haskell] Re: Teach theory then Haskell as example In-Reply-To: References: <19A583B4EAE64AF5B767C9865FA0D9D9@bzdryk> <1231913423.17972.22.camel@jabber> Message-ID: <20090117203334.mbjlaj2ts8ww0wcg-nwo@webmail.spamcop.net> G'day all. Quoting Max Rabkin : > Good to have a recommendation -- my future CT lecturer has a hard time > recommending anything not written by Mac Lane. One more suggestion: "Conceptual Mathematics" by Lawvere and Schanuel is the gentlest introduction that you're going to find. Cheers, Andrew Bromage From roconnor at theorem.ca Sat Jan 17 21:13:06 2009 From: roconnor at theorem.ca (roconnor@theorem.ca) Date: Sat Jan 17 21:04:06 2009 Subject: [Haskell] An Alternative Data.List.Zipper In-Reply-To: <49a77b7a0901171711q5b1da251g1ec7d6a3b0c7cab5@mail.gmail.com> References: <1232217185.20946.1.camel@ulysses> <953e0d250901171255n146a730cqc47da54eea611e64@mail.gmail.com> <1232227933.20946.9.camel@ulysses> <49a77b7a0901171441v332dce4es6e117fb587786495@mail.gmail.com> <1232239745.32027.17.camel@ulysses> <49a77b7a0901171711q5b1da251g1ec7d6a3b0c7cab5@mail.gmail.com> Message-ID: On Sat, 17 Jan 2009, David Menendez wrote: > instance Applicative f => Applicative (Backwards f) where > pure = B . pure > f <*> x = B (unB f <**> unB x) probably should be f <*> x = B (unB x <**> unB f) anyhow, this should be part of Control.Applicative. > This may be terminological confusion. I would have said that a > PointedList *is* a zipper. This is what I thought, and what how I initally advised Jeff. However after carefully reading both and (Clowns to the left of me, jokers to the right), it is clear that formally a zipper focuses on a sub-list / sub-tree rather than focusing on a particular node of a list or a tree. Hence zippers are not comonads. -- Russell O'Connor ``All talk about `theft,''' the general counsel of the American Graphophone Company wrote, ``is the merest claptrap, for there exists no property in ideas musical, literary or artistic, except as defined by statute.'' From dons at galois.com Sat Jan 17 21:48:25 2009 From: dons at galois.com (Don Stewart) Date: Sat Jan 17 21:39:27 2009 Subject: [Haskell] Hackage about to reach 1000 releases Message-ID: <20090118024825.GQ4786@scytale.galois.com> Hackage is about to reach the 1000 release mark, 2 years after it went live. That's right: in 2 years we've gone from having only a handful of released projects, to one thousand! Well done everyone! I did some quick visualisation of the rate of new releses, diversity of packages, and community growth over the period: http://archhaskell.wordpress.com/2009/01/18/open-source-haskell-releases-and-growth/ I'm very happy about the diversity of hackage apps, and the pleasing rate of growth of new releases. None of this would have been possible with out thousands of hours of work from the Cabal and Hackage hackers, the compiler teams, and the developers themselves. Keep churning out new and intresting code everyone! -- Don P.S. cabal install From ashley at semantic.org Sat Jan 17 23:47:39 2009 From: ashley at semantic.org (Ashley Yakeley) Date: Sat Jan 17 23:38:46 2009 Subject: [Haskell] HaskellWiki Update Message-ID: There has been a lot of spam on HaskellWiki. Since anonymous edits have been switched off, a spammer tactic has been to create hundreds of accounts to evade individual account blocks. To combat this, I have 1. deleted all user accounts that have made no edits; 2. switched off account creation; 3. blocked at least some of the remaining spam accounts. This is obviously not ideal, as there is now no way for new users to edit the wiki. I will investigate appropriate ways to allow account creation. -- Ashley Yakeley From dave at zednenem.com Sun Jan 18 01:39:04 2009 From: dave at zednenem.com (David Menendez) Date: Sun Jan 18 01:30:03 2009 Subject: [Haskell] An Alternative Data.List.Zipper In-Reply-To: References: <1232217185.20946.1.camel@ulysses> <953e0d250901171255n146a730cqc47da54eea611e64@mail.gmail.com> <1232227933.20946.9.camel@ulysses> <49a77b7a0901171441v332dce4es6e117fb587786495@mail.gmail.com> <1232239745.32027.17.camel@ulysses> <49a77b7a0901171711q5b1da251g1ec7d6a3b0c7cab5@mail.gmail.com> Message-ID: <49a77b7a0901172239v5512690bn44747410276882e3@mail.gmail.com> On Sat, Jan 17, 2009 at 9:13 PM, wrote: > On Sat, 17 Jan 2009, David Menendez wrote: > >> instance Applicative f => Applicative (Backwards f) where >> pure = B . pure >> f <*> x = B (unB f <**> unB x) > > probably should be f <*> x = B (unB x <**> unB f) I always get that backwards. > anyhow, this should be part of Control.Applicative. I agree. But until it is, we'll have to make do. >> This may be terminological confusion. I would have said that a >> PointedList *is* a zipper. > > This is what I thought, and what how I initally advised Jeff. However after > carefully reading both and > (Clowns to the left of me, > jokers to the right), it is clear that formally a zipper focuses on a > sub-list / sub-tree rather than focusing on a particular node of a list or a > tree. Hence zippers are not comonads. Funny, I was just reading that paper earlier today. You're right. I wasn't making enough of a distinction between zippers and structures with one selected element. It's the latter which are comonads. -- Dave Menendez From haihualin at 163.com Sun Jan 18 04:50:22 2009 From: haihualin at 163.com (haihualin) Date: Sun Jan 18 04:41:26 2009 Subject: [Haskell] How to define gunfold on List? Message-ID: <200901181750192051150@163.com> Hi, Does some one know how to define gunfold on recursive data struction like List? The ghc doc only give the example for non-recursive data like below. data T a b = C1 a b | C2 deriving (Typeable, Data) GHC will generate an instance that is equivalent to instance (Data a, Data b) => Data (T a b) where gfoldl k z (C1 a b) = z C1 `k` a `k` b gfoldl k z C2 = z C2 gunfold k z c = case constrIndex c of 1 -> k (k (z C1)) 2 -> z C2 toConstr (C1 _ _) = con_C1 toConstr C2 = con_C2 dataTypeOf _ = ty_T con_C1 = mkConstr ty_T "C1" [] Prefix con_C2 = mkConstr ty_T "C2" [] Prefix ty_T = mkDataType "Module.T" [con_C1, con_C2] From jpm at cs.uu.nl Sun Jan 18 04:56:53 2009 From: jpm at cs.uu.nl (=?ISO-8859-1?Q?Jos=E9_Pedro_Magalh=E3es?=) Date: Sun Jan 18 04:47:53 2009 Subject: [Haskell] How to define gunfold on List? In-Reply-To: <200901181750192051150@163.com> References: <200901181750192051150@163.com> Message-ID: <52f14b210901180156x33aba2l93ea2d652af0125d@mail.gmail.com> Hi there, There's no difference. See http://hackage.haskell.org/packages/archive/base/4.0.0.0/doc/html/src/Data-Data.html#line-1034 You can also see many other instances there. Cheers, Pedro On Sun, Jan 18, 2009 at 10:50, haihualin wrote: > Hi, > > Does some one know how to define gunfold on recursive data struction like > List? > > The ghc doc only give the example for non-recursive data like below. > > data T a b = C1 a b | C2 deriving (Typeable, Data) > > GHC will generate an instance that is equivalent to > > instance (Data a, Data b) => Data (T a b) where > gfoldl k z (C1 a b) = z C1 `k` a `k` b > gfoldl k z C2 = z C2 > > gunfold k z c = case constrIndex c of > 1 -> k (k (z C1)) > 2 -> z C2 > > toConstr (C1 _ _) = con_C1 > toConstr C2 = con_C2 > > dataTypeOf _ = ty_T > > con_C1 = mkConstr ty_T "C1" [] Prefix > con_C2 = mkConstr ty_T "C2" [] Prefix > ty_T = mkDataType "Module.T" [con_C1, con_C2] > > > > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090118/61c3510e/attachment.htm From cfp at clip.dia.fi.upm.es Sun Jan 18 08:16:26 2009 From: cfp at clip.dia.fi.upm.es (cfp@clip.dia.fi.upm.es) Date: Sun Jan 18 08:07:57 2009 Subject: [Haskell] ICLP 2009: Call for workshop proposals Message-ID: <18803.11178.994814.541966@clip.dia.fi.upm.es> *** CALL FOR WORKSHOP PROPOSALS *** ICLP 2009 25th International Conference on Logic Programming Pasadena, California, USA July 14-17, 2009 URL: http://www.ist.unomaha.edu/iclp2009/ ICLP 2009, the 25th International Conference on Logic Programming, will be held in Pasadena (USA), from July 14 to 17, 2009. Workshops co-located with international conferences are one of the best venue for the presentation and discussion of preliminary work, novel ideas, and new open problems to a wide and interested audience. Co-located workshops also provide an opportunity for presenting specialized topics and opportunities for intensive discussions and project collaboration. The topics of the workshops co-located with ICLP 2009 can cover any areas related to logic programming, (e.g., theory, implementation, environments, language issues, alternative paradigms, applications), including cross-disciplinary areas. However, any workshop proposal will be considered. The format of the workshop will be decided by the workshop organizers, but ample time must be allowed for general discussion. Workshops can vary in length, but the optimal duration will be half a day or a full day. Workshop Proposal: ================== Those interested in organizing a workshop at ICLP 2009 are invited to submit a workshop proposal. Proposals should be in English and about two pages in length. They should contain: * The title of the workshop. * A brief technical description of the topics covered by the workshop. * A discussion of the timeliness and relevance of the workshop. * A list of some related workshops held in the last years. * The (preliminary) required number of half-days allotted to the workshop and an estimate of the number of expected attendees. * The names, affiliation, and contact details (email, web page, phone, fax) of the workshop organizer(s) together with a designated contact person. * The previous experience of the workshop organizing committee in workshop/conference organization. Proposals are expected in ASCII or PDF format. All proposals should be submitted to the Workshop Chair (Manuel Carro) by email by February 9th, 2009. Reviewing Process: ================== Each submitted proposal is reviewed by the Workshops Chair and the Conference Program Chairs. Proposals that appear well-organized and that fit the goals and scope of ICLP will be selected. The decision will be notified by email to the responsible organizer by February 23rd, 2009. The definitive length of the workshop will be planned according to the number of submissions received by the different workshops. For every accepted workshop, the ICLP local organizers will prepare a meeting place and arrange the distribution of the workshop proceedings, whose preparation is however in charge to the workshop organizers. The workshop registration fees will be handled together with the conference fees. Workshop Organizers' Tasks: =========================== * Producing a "Call for Papers" for the workshop and posting it on the net and/or other means. Please provide a web page URL which can be linked into the ICLP 2009 home page by March 9th, 2009. * Providing a brief description of the workshop for the conference program. * Reviewing/accepting submitted papers. * Scheduling workshop activities in collaboration with the local organizers and the workshop chair. * Sending workshop program and workshop proceedings in pdf format to the workshop chair for distribution at the conference. * The use of the Computing Research Repository (CoRR) for the workshop proceedings is strongly suggested. See http://www.logicprogramming.org/ for guidelines. We encourage reading these instructions in advance so that you can ask paper authors to prepare accordingly the final versions of their papers. Location: ========= All workshops will take place in Pasadena at the site of the main conference. See the ICLP 2009 web site for location details. Important Dates: ================ February 9, 2009: Proposal submission deadline. February 23, 2009: Notification. March 9, 2009: Deadline to receive the CFP and URL for the web page of the workshop June 1, 2009: Deadline for preliminary proceedings. July 14-17, 2009: ICLP 2009 workshops. Workshop Chair: =============== Manuel Carro [mcarro AT fi dot upm dot es] (www.clip.dia.fi.upm.es/~mcarro) From alson at alsonkemp.com Sun Jan 18 13:06:14 2009 From: alson at alsonkemp.com (Alson Kemp) Date: Sun Jan 18 12:57:12 2009 Subject: [Haskell] ANNOUNCE: Turbinado V0.4 Message-ID: <2629c41e0901181006r7482542ybe7edd667cf0187b@mail.gmail.com> Turbinado (http://www.turbinado.com) is an easy to use Model-View-Controller-ish web framework for Haskell. The source for the framework can be found at: http://github.com/alsonkemp/turbinado The source for the website turbinado.org can be found at: http://github.com/alsonkemp/turbinado-website (see the /App directory for the code for www.turbinado.org) Release 0.4 contains: * A dramatically improved ORM (or Type-Relation Mapper) which handles foreign keys. Still PostgreSQL only at this point. * All dependencies in tmp/dependencies to ease building the application. * In code documentation (not complete, but starting). * Documentation (see http://turbinado.org/Architecture). Release 0.5 will focus on: * Ease of installation! * Moving to GHC 6.10 (whenever Debian shifts). Diego Eche provided a port from plugins to ghc-api. * Additional functionality (e.g. sessions, authentication, etc). * Tutorials. From sebastian.sylvan at gmail.com Sun Jan 18 13:09:50 2009 From: sebastian.sylvan at gmail.com (Sebastian Sylvan) Date: Sun Jan 18 13:00:54 2009 Subject: [Haskell] ANNOUNCE: Turbinado V0.4 In-Reply-To: <2629c41e0901181006r7482542ybe7edd667cf0187b@mail.gmail.com> References: <2629c41e0901181006r7482542ybe7edd667cf0187b@mail.gmail.com> Message-ID: <25C912C88C634B4F96421D88B2BA5E33@SebastianPC> -------------------------------------------------- From: "Alson Kemp" Sent: Sunday, January 18, 2009 6:06 PM To: Subject: [Haskell] ANNOUNCE: Turbinado V0.4 > Turbinado (http://www.turbinado.com) is an easy to use > Model-View-Controller-ish web framework for Haskell. You mean http://www.turbinado.org ? :-) From alson at alsonkemp.com Sun Jan 18 13:33:07 2009 From: alson at alsonkemp.com (Alson Kemp) Date: Sun Jan 18 13:24:04 2009 Subject: [Haskell] Re: ANNOUNCE: Turbinado V0.4 In-Reply-To: <2629c41e0901181006r7482542ybe7edd667cf0187b@mail.gmail.com> References: <2629c41e0901181006r7482542ybe7edd667cf0187b@mail.gmail.com> Message-ID: <2629c41e0901181033u24d5dfbai3c17d910708ac4b5@mail.gmail.com> >Turbinado (http://www.turbinado.com) is an easy to use Oops. That should be !! http://www.turbinado.org. !! - Alson From DekuDekuplex at Yahoo.com Sun Jan 18 22:00:32 2009 From: DekuDekuplex at Yahoo.com (Benjamin L.Russell) Date: Sun Jan 18 21:51:30 2009 Subject: [Haskell] Re: HaskellWiki Update References: Message-ID: On Sat, 17 Jan 2009 20:47:39 -0800, Ashley Yakeley wrote: >There has been a lot of spam on HaskellWiki. Since anonymous edits have >been switched off, a spammer tactic has been to create hundreds of >accounts to evade individual account blocks. > >To combat this, I have > >1. deleted all user accounts that have made no edits; >2. switched off account creation; >3. blocked at least some of the remaining spam accounts. > >This is obviously not ideal, as there is now no way for new users to >edit the wiki. I will investigate appropriate ways to allow account >creation. Instead of switching off all new account creation, perhaps you could shut off account creation/access for just those domains for which spammers have been creating accounts? -- Benjamin L. Russell -- Benjamin L. Russell / DekuDekuplex at Yahoo dot com http://dekudekuplex.wordpress.com/ Translator/Interpreter / Mobile: +011 81 80-3603-6725 "Furuike ya, kawazu tobikomu mizu no oto." -- Matsuo Basho^ From sigbjorn.finne at gmail.com Sun Jan 18 22:40:19 2009 From: sigbjorn.finne at gmail.com (Sigbjorn Finne) Date: Sun Jan 18 22:31:32 2009 Subject: [Haskell] ANN: curl-1.3.4 Message-ID: <4973F623.7050007@gmail.com> Hi, a new version 'curl', a complete Haskell binding to the libcurl API, is now available and have been uploaded to Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl Git repo at git://code.galois.com/curl.git Appended is the list of changes since the previous release. Most notable is the overloading of representation of response buffers (and headers), allowing for the use of ByteStrings. Speedups might be had as a result... enjoy --sigbjorn Version 1.3.4: released 2009-01-18; changes from 1.3.3 * Overloaded Network.Curl operations over response representation of payloads and headers. Controlled via CurlBuffer and CurlHeader classes. New actions: - curlGetString_, curlGetResponse_, perform_with_response_, do_curl_, curlHead_ * Provided ByteString instances (strict and lazy) * No modification in calling interface to existing exports, so backwards compatible. * Added Show instance for Network.Curl.Opts.CurlOption * curl_version_string, curl_version_number now gives you access to version info of underlying lib you _compiled_ the package with. * Sync'ed wrt libcurl-7.19.2, so bunch of new options added to Network.Curl.Opts. Use version functions to determine if they are supported though. From apfelmus at quantentunnel.de Mon Jan 19 03:41:24 2009 From: apfelmus at quantentunnel.de (Heinrich Apfelmus) Date: Mon Jan 19 03:32:00 2009 Subject: [Haskell] Re: HaskellWiki Update In-Reply-To: References: Message-ID: Ashley Yakeley wrote: > There has been a lot of spam on HaskellWiki. Since anonymous edits have > been switched off, a spammer tactic has been to create hundreds of > accounts to evade individual account blocks. > > To combat this, I have > > 1. deleted all user accounts that have made no edits; > 2. switched off account creation; > 3. blocked at least some of the remaining spam accounts. > > This is obviously not ideal, as there is now no way for new users to > edit the wiki. I will investigate appropriate ways to allow account > creation. Maybe it could help to restrict the account creation rate per IP? For example, every IP may only create one account per 12 hours. Regards, apfelmus -- http://apfelmus.nfshost.com From doug at cs.dartmouth.edu Mon Jan 19 08:36:54 2009 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Mon Jan 19 08:27:47 2009 Subject: [Haskell] type inference & instance extensions Message-ID: <200901191336.n0JDasH6011965@tecumseh.cs.dartmouth.edu> A fragment of an attempt to make pairs serve as complex numbers, using ghc/hugs extensions: instance Num a => Num (a,a) where (x,y) * (u,v) = (x*u-y*v, x*v+y*u) Unfortunately, type inference isn't strong enough to cope with (1,1)*(1,1) Why shouldn't it be strengthened to do so? Or is there a declarative trick (perhaps with dependent classes) that will accomplish the goal? Doug McIlroy From Malcolm.Wallace at cs.york.ac.uk Mon Jan 19 08:53:31 2009 From: Malcolm.Wallace at cs.york.ac.uk (Malcolm Wallace) Date: Mon Jan 19 08:47:56 2009 Subject: [Haskell] type inference & instance extensions In-Reply-To: <200901191336.n0JDasH6011965@tecumseh.cs.dartmouth.edu> References: <200901191336.n0JDasH6011965@tecumseh.cs.dartmouth.edu> Message-ID: <20090119135331.3725edce.Malcolm.Wallace@cs.york.ac.uk> Doug McIlroy wrote: > instance Num a => Num (a,a) where > (x,y) * (u,v) = (x*u-y*v, x*v+y*u) > > Unfortunately, type inference isn't strong enough to cope with > > (1,1)*(1,1) I'm guessing it is because (fromInteger 1, fromInteger 1) :: (Num a, Num b) => (a,b) So you want to force the two components to be the same type: let x = 1 in (x,x)*(x,x) Or for differing component values: let x = 1 in (x,2`asTypeOf`x)*(3`asTypeOf`x,4`asTypeOf`x) Regards, Malcolm From ganesh.sittampalam at credit-suisse.com Mon Jan 19 09:04:39 2009 From: ganesh.sittampalam at credit-suisse.com (Sittampalam, Ganesh) Date: Mon Jan 19 08:55:55 2009 Subject: [Haskell] type inference & instance extensions In-Reply-To: <200901191336.n0JDasH6011965@tecumseh.cs.dartmouth.edu> References: <200901191336.n0JDasH6011965@tecumseh.cs.dartmouth.edu> Message-ID: <16442B752A06A74AB4D9F9A5FF076E4B4DCB10@ELON17P32001A.csfb.cs-group.com> Doug McIlroy wrote: > A fragment of an attempt to make pairs serve as complex numbers, > using ghc/hugs extensions: > > instance Num a => Num (a,a) where > (x,y) * (u,v) = (x*u-y*v, x*v+y*u) > > Unfortunately, type inference isn't strong enough to cope with > > (1,1)*(1,1) > > Why shouldn't it be strengthened to do so? The problem is that type classes are an "open" system. Although it's obvious that your instance is the only one in this code that can be used to type-check (1,1), that doesn't preclude new code adding an instance that could make it behave differently. I had hoped that the code below (GHC 6.10+) would work, but it just sends GHC into a loop when you actually try to typecheck (1,1). I don't know if that's a bug in GHC or a misunderstanding on my part of how the typechecking should work. {-# LANGUAGE FlexibleInstances, TypeFamilies #-} instance (a~b, Num a) => Num (a, b) where fromInteger k = (fromInteger k, fromInteger 0) (x,y) * (u,v) = (x*u-y*v, x*v+y*u) Ganesh ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ============================================================================== From lennart at augustsson.net Mon Jan 19 10:17:41 2009 From: lennart at augustsson.net (Lennart Augustsson) Date: Mon Jan 19 10:08:35 2009 Subject: [Haskell] type inference & instance extensions In-Reply-To: <16442B752A06A74AB4D9F9A5FF076E4B4DCB10@ELON17P32001A.csfb.cs-group.com> References: <200901191336.n0JDasH6011965@tecumseh.cs.dartmouth.edu> <16442B752A06A74AB4D9F9A5FF076E4B4DCB10@ELON17P32001A.csfb.cs-group.com> Message-ID: A loop without turning on a flag to allow it must be a bug. -- Lennart On Mon, Jan 19, 2009 at 2:04 PM, Sittampalam, Ganesh wrote: > Doug McIlroy wrote: >> A fragment of an attempt to make pairs serve as complex numbers, >> using ghc/hugs extensions: >> >> instance Num a => Num (a,a) where >> (x,y) * (u,v) = (x*u-y*v, x*v+y*u) >> >> Unfortunately, type inference isn't strong enough to cope with >> >> (1,1)*(1,1) >> >> Why shouldn't it be strengthened to do so? > > The problem is that type classes are an "open" system. Although > it's obvious that your instance is the only one in this code > that can be used to type-check (1,1), that doesn't preclude new > code adding an instance that could make it behave differently. > > I had hoped that the code below (GHC 6.10+) would work, but it > just sends GHC into a loop when you actually try to typecheck > (1,1). I don't know if that's a bug in GHC or a misunderstanding > on my part of how the typechecking should work. > > {-# LANGUAGE FlexibleInstances, TypeFamilies #-} > > instance (a~b, Num a) => Num (a, b) where > fromInteger k = (fromInteger k, fromInteger 0) > (x,y) * (u,v) = (x*u-y*v, x*v+y*u) > > Ganesh > > ============================================================================== > Please access the attached hyperlink for an important electronic communications disclaimer: > > http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html > ============================================================================== > > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > From ganesh.sittampalam at credit-suisse.com Mon Jan 19 10:34:19 2009 From: ganesh.sittampalam at credit-suisse.com (Sittampalam, Ganesh) Date: Mon Jan 19 10:26:50 2009 Subject: [Haskell] type inference & instance extensions In-Reply-To: References: <200901191336.n0JDasH6011965@tecumseh.cs.dartmouth.edu> <16442B752A06A74AB4D9F9A5FF076E4B4DCB10@ELON17P32001A.csfb.cs-group.com> Message-ID: <16442B752A06A74AB4D9F9A5FF076E4B4DCB12@ELON17P32001A.csfb.cs-group.com> Lennart Augustsson wrote: >> I had hoped that the code below (GHC 6.10+) would work, but it just >> sends GHC into a loop when you actually try to typecheck (1,1). I >> don't know if that's a bug in GHC or a misunderstanding on my part of >> how the typechecking should work. > A loop without turning on a flag to allow it must be a bug. Sorry, I didn't mean to say "typecheck (1,1)". I meant to say "evaluate (1,1)*(1,1)" - I had a suspicion that some kind of infinite polymorphic recursion through the Num instance is happening and accidentally turned that thought into a completely different statement. Ganesh ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ============================================================================== From byorgey at seas.upenn.edu Mon Jan 19 15:43:48 2009 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Mon Jan 19 15:34:56 2009 Subject: [Haskell] Haskell Weekly News: Issue 101 - January 19, 2009 Message-ID: <20090119204348.GA22354@seas.upenn.edu> --------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20090119 Issue 101 - January 19, 2009 --------------------------------------------------------------------------- Welcome to issue 101 of HWN, a newsletter covering developments in the [1]Haskell community. Gee whiz, people, stop being so darn productive or you're going to burn me out. Seriously. Announcements curl-1.3.4. Sigbjorn Finne [2]announced that a new version of [3]curl, a complete Haskell binding to the libcurl API, is now available and have been uploaded to Hackage. The most notable change is the overloading of representation of response buffers (and headers), allowing for the use of ByteStrings. Turbinado V0.4. Alson Kemp [4]announced the release of version 0.4 of [5]Turbinado, an easy to use Model-View-Controller-ish web framework for Haskell. Highlights for the 0.4 release include a dramatically improved ORM which handles foreign keys, and improved documentation. Hackage about to reach 1000 releases. Don Stewart [6]announced that Hackage is about to reach the 1000 release mark, 2 years after it went live. Some pretty charts [7]can be seen here. leapseconds-announced-2009. Bjorn Buckwalter [8]announced the release of the [9]leapseconds-announced package, which contains a single module and a single function implementing the Data.Time.Clock.TAI.LeapSecondTable interface. zipper-0.1. Andres Loeh [10]announced [11]zipper-0.1, a library offering a generic zipper for systems of recursive datatypes. multirec-0.2. Andres Loeh [12]announced [13]multirec-0.2, a library which provides a mechanism to talk about fixed points of systems of datatypes that may be mutually recursive. On top of these representations, generic functions such as the fold or the Zipper can then be defined. ghci-haskeline 0.1. Judah Jacobson [14]announced the first release of [15]ghci-haskeline. This package uses the GHC API to reimplement ghci with the [16]Haskeline library as a backend. Haskeline is a library for line input in command-line programs, similar to readline or editline, which is written in Haskell and thus (hopefully) more easily integrated into other Haskell programs. The Monad.Reader (13) - Call for copy. Wouter Swierstra [17]announced a Call for Copy for Issue 13 of [18]The Monad.Reader. The submission deadline is February 13, 2009. Please get in touch with Wouter if you intend to submit something. Cabal 2.0. Duncan Coutts [19]announced that he has started a [20]wiki page to collect ideas for Cabal 2. The basic idea for Cabal 2 is to learn lessons from our how the existing design has fared and how we can make a better design to tackle an expanded set of goals. Announcing Haskell protocol-buffers 1.4.0 (the smashing recursive edition). Chris Kuklewicz [21]announced version 1.4.0 (the smashing recursive edition) of [22]protocol-buffers, a Haskell interface to Google's "..language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more." Haskell WikiProject. Robin Green [23]asked: is anyone else interested in forming a Haskell WikiProject on Wikipedia, to collaborate on improving and maintaining the coverage and quality of articles on Haskell-related software and topics (broadly defined)? darcs 2.2.0. Petr Rockai [24]announced the release of darcs 2.2.0, with both a [25]source tarball and a [26]cabalized tarball available. This version features many improvements and bug fixes; see Petr's original announcement for a list. hledger 0.3. Simon Michael [27]announced the release of [28]hledger 0.3, a partial haskell clone of John Wiegley's "ledger" text-based accounting tool. It generates transaction and balance reports from a plain text ledger file, and demonstrates a functional implementation of ledger. language-sh-0.0.3.1. Stephen Hicks [29]announced the [30]language-sh package, a set of modules for parsing, manipulating, and printing sh-style shell scripts. It's being developed alongside shsh, the [31]Simple Haskell Shell. Coadjute 0.0.1, generic build tool. Matti Niemenmaa [32]announced version 0.0.1 of [33]Coadjute, a generic build tool intended as an easier to use and more portable replacement for make. dataenc 0.12. Magnus Therning [34]announced version 0.12 of [35]dataenc, a data encoding library currently providing Uuencode, Base64, Base64Url, Base32, Base32Hex, Base16, Base85, and (new in 0.12) yEncoding. 3 applications of "indexed composition" as a language design principle. Greg Meredith [36]announced that he has found a way to generalize the LogicT transformer, and calculated it's [37]application to three fairly interesting examples. HTTPbis / HTTP-4000.x package available. Sigbjorn Finne [38]announced the availability of a modernization of the venerable and trusted [39]HTTP package. The headline new feature of this version is the parametrization of the representation of payloads in both HTTP requests and responses; two new representations are supported, strict and lazy ByteStrings. monad-interleave 0.1. Patrick Perry [40]announced the [41]monad-interleave package, which provides a type class generalizing his two favorite functions in Haskell, "unsafeInterleaveIO" and "unsafeInterleaveST". hs-dotnet, version 0.3.0. Sigbjorn Finne [42]announced the [43]first public release of [44]hs-dotnet, a pragmatic take on interoperating between Haskell (via GHC) and .NET. HEADS UP: finalizer changes coming in GHC 6.10.2. Simon Marlow [45]announced that, by popular demand, GHC 6.10.2 will support finalizers that are actually guaranteed to run, and run promptly. However, there's a catch. If you want to know what the catch is, read his message. split-0.1.1 (doc bugfix; new functions wordsBy and linesBy). Brent Yorgey [46]announced version 0.1.1 of the [47]split library. This version fixes some Haddock bugs, and adds two new convenience functions suggested by Neil Mitchell, wordsBy and linesBy. json-0.4.1. Sigbjorn Finne [48]announced a new release (0.4.1) of the [49]json package. New in this release is a generic JSON encoder contributed by Lennart Augustsson along with a number of other, smaller changes. haskell-platform mailing list. Duncan Coutts [50]announced that anyone interested in helping out with the haskell platform project is invited to subscribe to the [51]haskell-platform mailing list. This mailing list is for discussing practical stuff; policy questions will be discussed on the libraries mailing list. bytestring-trie 0.1.4. wren ng thornton [52]announced version 0.1.4 of the [53]bytestring-trie package. This release fixes a number of bugs, adds functions such as keys, toListBy, fromList{L,R,S}, and separated Data.Trie (the main module for users) from Data.Trie.Internal (gritty details, and core implementation). HLint 1.2. Neil Mitchell [54]announced [55]HLint version 1.2, a lint-like tool for Haskell that detects and suggests improvements for your code. The biggest new feature is list recursion suggestions. Working with HLint from Emacs. Alex Ott [56]announced an [57]emacs module for integration with [58]HLint. Discussion An Alternative Data.List.Zipper. Jeff Wheeler [59]posted [60]an improved version of Data.List.Zipper, and requested feedback or constructive criticism. Comments from OCaml Hacker Brian Hurt. John Goerzen [61]posted a link to a [62]blog post by Brian Hurt, along with some thoughts about naming things in the standard libraries, spawning the longest ML thread in recent history. Blog noise [63]Haskell news from the [64]blogosphere. * Jeff Heard: [65]The Docuverse.. Cool search query visualization for massive numbers of documents. * Ben Moseley: [66]The Category Theory of Appendages. * Galois, Inc: [67]Galois at POPL. * Colin Ross: [68]Does your IDE define you or support you?. * Alson Kemp: [69]ANNOUNCE: Turbinado V0.4. * Jeff Heard: [70]ProteinVis: Visualizing a large tree in Haskell and OpenGL. * ezekiel smithburg: [71]what to do when you can't solve a problem with a hackage library you need?. * Jeff Heard: [72]Simple Futures in Haskell. * Dan Piponi (sigfpe): [73]Haskell Monoids and their Uses. A nice introductory tutorial on Monoids in Haskell. * Real-World Haskell: [74]John Goerzen on Why You Should Learn Haskell. * LHC Team: [75]LLVM is great.. * Jeff Heard: [76]iBiblio traffic, search engine hits, and cross-traffic. * Luke Palmer: [77]Use MonadRandom!. * LHC Team: [78]Why LLVM probably won't replace C--.. * Magnus Therning: [79]Series of posts on testing Haskell code. * Magnus Therning: [80]Useful thing when adopting test-framework after already using HUnit. * Magnus Therning: [81]dataenc 0.12 posted to HackageDB. * Jeff Heard: [82]The new HTTP library. * Jeff Heard: [83]Beautiful Code, Compelling Evidence. * LHC Team: [84]The case against C/LLVM.. * Manuel M T Chakravarty: [85]Some nice code examples showing how to use type families.. * Manuel M T Chakravarty: [86]Enforcing a relation between independent type families.. * Nick Mudge: [87]Zunes, Year 2038 Problem, Real World Haskell, Why, Potion, Games. * Darcs: [88]darcs 2.2.0 is released!. * GHC / OpenSPARC Project: [89]Info tables. * LHC Team: [90]What is LHC?. * LHC Team: [91]Resources.. * LHC Team: [92]Typeclass Blues. * GHC / OpenSPARC Project: [93]Liveness lies. * Galois, Inc: [94]Real World Haskell: Intel Parallel Programming Podcast. * Real-World Haskell: [95]Intel Parallel Programming Podcast: Real World Haskell. * Brent Yorgey: [96]Abstraction, intuition, and the "monad tutorial fallacy". * Luke Palmer: [97]Ha! I can't even get Events right. * GHC / OpenSPARC Project: [98]Bootstrapping 7. * Colin Ross: [99]Finding a member of an infinite list. * LHC Team: [100]The mess with variable ids.. * Luke Palmer: [101]Ridding ourselves of IO before there is a good replacement. * GHC / OpenSPARC Project: [102]Bootstrapping 7. * Colin Ross: [103]Notes on working with finite sorted lists. * Bryan O'Sullivan: [104]Fun with Haskell view patterns. * Conal Elliott: [105]3D rendering as functional reactive programming. Quotes of the Week * luqui: sigh: mathematicians. can't live with 'em, can't prove 'em wrong. * mauke: YO DAWG I HEARD YOU LIKE METACIRCULARITY SO WE PUT AN INTERPRETER IN YOUR INTERPRETER SO YOU CAN RUN CODE WHILE YOU RUN CODE * lament: tuples are proof that haskell is inherently broken and will never work. * roconnor: [after a long -cafe thread on the suckiness of using math terms in Haskell] we don't use Integer anymore. Too abstract. It is now called CountingThingy. * quicksilver: partially applied type synonym = type lambdas = unrestricted type functions = can of pants * ddarius: In the spirit of that article on monoids, we should drop the term "tree" and replace it with the term "free pointed magma" * ski_: unique among types, 'Void -> X' has its own charm. tourists should definitely pay a visit. * pao: Cale: thanks ... I really think you deserve a statue ... or, at least, a portrait in ascii art on haskell.org :-) * byorgey: TDD replaces a type checker in Ruby in the same way that a strong drink replaces sorrows. About the Haskell Weekly News New editions are posted to [106]the Haskell mailing list as well as to [107]the Haskell Sequence and [108]Planet Haskell. [109]RSS is also available, and headlines appear on [110]haskell.org. To help create new editions of this newsletter, please see the information on [111]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [112]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://article.gmane.org/gmane.comp.lang.haskell.general/16792 3. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl 4. http://article.gmane.org/gmane.comp.lang.haskell.general/16788 5. http://www.turbinado.com/ 6. http://article.gmane.org/gmane.comp.lang.haskell.general/16782 7. http://archhaskell.wordpress.com/2009/01/18/open-source-haskell-releases-and-growth/ 8. http://article.gmane.org/gmane.comp.lang.haskell.general/16770 9. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/leapseconds-announced 10. http://article.gmane.org/gmane.comp.lang.haskell.general/16756 11. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/zipper 12. http://www.haskell.org//pipermail/haskell/2009-January/020925.html 13. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/multirec 14. http://article.gmane.org/gmane.comp.lang.haskell.general/16751 15. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/ghci-haskeline 16. http://trac.haskell.org/haskeline 17. http://article.gmane.org/gmane.comp.lang.haskell.general/16750 18. http://www.haskell.org/haskellwiki/The_Monad.Reader 19. http://article.gmane.org/gmane.comp.lang.haskell.libraries/10568 20. http://hackage.haskell.org/trac/hackage/wiki/Cabal-2 21. http://article.gmane.org/gmane.comp.lang.haskell.libraries/10497 22. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/protocol-buffers 23. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51037 24. http://www.haskell.org//pipermail/haskell-cafe/2009-January/053732.html 25. http://www.darcs.net/darcs-2.2.0.tar.gz 26. http://hackage.haskell.org/packages/archive/darcs/2.2.0/darcs-2.2.0.tar.gz 27. http://www.haskell.org//pipermail/haskell-cafe/2009-January/053843.html 28. http://joyful.com/hledger 29. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50907 30. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/language-sh 31. http://code.haskell.org/shsh/ 32. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50896 33. http://iki.fi/matti.niemenmaa/coadjute/ 34. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50831 35. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/dataenc 36. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50756 37. http://biosimilarity.blogspot.com/2009/01/3-applications-of-indexed-composition.html 38. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50748 39. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HTTP 40. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50648 41. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/monad-interleave 42. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50548 43. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hs-dotnet 44. http://haskell.forkIO.com/dotnet 45. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50477 46. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50421 47. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/split 48. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50362 49. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/json 50. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50336 51. http://projects.haskell.org/cgi-bin/mailman/listinfo/haskell-platform 52. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50292 53. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/bytestring-trie 54. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50283 55. http://www-users.cs.york.ac.uk/~ndm/hlint/ 56. http://article.gmane.org/gmane.comp.lang.haskell.cafe/50264 57. http://xtalk.msk.su/~ott/common/emacs/hs-lint.el 58. http://www-users.cs.york.ac.uk/~ndm/hlint/ 59. http://thread.gmane.org/gmane.comp.lang.haskell.general/16771 60. http://hpaste.org/14030 61. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/50590 62. http://enfranchisedmind.com/blog/2009/01/15/random-thoughts-on-haskell/ 63. http://planet.haskell.org/ 64. http://haskell.org/haskellwiki/Blog_articles 65. http://vis.renci.org/jeff/?p=66 66. http://nattermorphisms.blogspot.com/2009/01/category-theory-of-appendages.html 67. http://www.galois.com/blog/2009/01/18/galois-at-popl/ 68. http://vcolin.com/2009/01/18/ide-define-support/ 69. http://www.alsonkemp.com/haskell/announce-turbinado-v04/ 70. http://vis.renci.org/jeff/?p=52 71. http://tehgeekmeister.wordpress.com/2009/01/17/what-to-do-when-you-cant-solve-a-proble/ 72. http://vis.renci.org/jeff/?p=27 73. http://sigfpe.blogspot.com/2009/01/haskell-monoids-and-their-uses.html 74. http://www.realworldhaskell.org/blog/2009/01/17/john-goerzen-on-why-you-should-learn-haskell/ 75. http://lhc-compiler.blogspot.com/2009/01/llvm-is-great.html 76. http://vis.renci.org/jeff/?p=33 77. http://lukepalmer.wordpress.com/2009/01/17/use-monadrandom/ 78. http://lhc-compiler.blogspot.com/2009/01/why-llvm-probably-wont-replace-c.html 79. http://therning.org/magnus/archives/436 80. http://therning.org/magnus/archives/437 81. http://therning.org/magnus/archives/434 82. http://vis.renci.org/jeff/?p=8 83. http://vis.renci.org/jeff/?p=4 84. http://lhc-compiler.blogspot.com/2009/01/case-against-cllvm.html 85. http://justtesting.org/post/70895924 86. http://justtesting.org/post/70893530 87. http://nickmudge.info/?post=103 88. http://blog.darcs.net/2009/01/darcs-220-is-released.html 89. http://ghcsparc.blogspot.com/2009/01/info-tables.html 90. http://lhc-compiler.blogspot.com/2009/01/what-is-lhc.html 91. http://lhc-compiler.blogspot.com/2009/01/resources.html 92. http://lhc-compiler.blogspot.com/2009/01/typeclass-blues.html 93. http://ghcsparc.blogspot.com/2009/01/liveness-lies.html 94. http://www.galois.com/blog/2009/01/13/real-world-haskell-intel-parallel-programming-podcast/ 95. http://www.realworldhaskell.org/blog/2009/01/13/intel-parallel-programming-podcast-real-world-haskell/ 96. http://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/ 97. http://lukepalmer.wordpress.com/2009/01/13/ha-i-cant-even-get-events-right/ 98. http://ghcsparc.blogspot.com/2009/01/bootstrapping-7.html 99. http://vcolin.com/2009/01/12/finding-member-infinite-list/ 100. http://lhc-compiler.blogspot.com/2009/01/mess-with-variable-ids.html 101. http://lukepalmer.wordpress.com/2009/01/12/ridding-ourselves-of-io-before-there-is-a-good-replacement/ 102. http://ghcsparc.blogspot.com/2009/01/bootstrapping-7.html 103. http://vcolin.com/2009/01/11/notes-working-finite-sorted-lists/ 104. http://www.serpentine.com/blog/2009/01/11/fun-with-haskell-view-patterns/ 105. http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming/ 106. http://www.haskell.org/mailman/listinfo/haskell 107. http://sequence.complete.org/ 108. http://planet.haskell.org/ 109. http://sequence.complete.org/node/feed 110. http://haskell.org/ 111. http://haskell.org/haskellwiki/HWN 112. http://code.haskell.org/~byorgey/code/hwn/ From fmics2009 at dsic.upv.es Tue Jan 20 06:32:56 2009 From: fmics2009 at dsic.upv.es (FMICS 2009 workshop chair) Date: Tue Jan 20 06:30:03 2009 Subject: [Haskell] FMICS 2009: Second Call for Papers Message-ID: <4975B668.4090306@dsic.upv.es> FMICS 2009 - 2ND CALL FOR PAPERS Please visit: http://www.dsic.upv.es/workshops/fmics2009 ************************************************************ * 14th International Workshop on * * Formal Methods for Industrial Critical Systems * * FMICS 2009 * * * * November 2-3, 2009 * * Eindhoven, The Netherlands * ************************************************************ * ** NEWS ** * * * * >> LNCS proceedings * * Springer has confirmed that the proceedings * * will be published in their Lecture Notes in * * Computer Science series. * ************************************************************ IMPORTANT DATES --------------- Deadline for abstracts: 1st April Deadline for papers: 7 April Accept/Reject notification: 15 June Camera-ready version: 15 July Workshop: 2-3 November SCOPE OF THE WORKSHOP --------------------- The aim of the ERCIM FMICS workshop series is to provide a forum for researchers who are interested in the development and application of formal methods in industry. In particular, these workshops bring together scientists and engineers that are active in the area of formal methods and interested in exchanging their experiences in the industrial usage of these methods. These workshops also strive to promote research and development for the improvement of formal methods and tools for industrial applications. Topics include, but are not restricted to: - Design, specification, code generation and testing based on formal methods. - Methods, techniques and tools to support automated analysis, certification, debugging, learning, optimization and transformation of complex, distributed, real-time systems and embedded systems. - Verification and validation methods that address shortcomings of existing methods with respect to their industrial applicability (e.g., scalability and usability issues). - Tools for the development of formal design descriptions. - Case studies and experience reports on industrial applications of formal methods, focusing on lessons learned or identification of new research directions. - Impact of the adoption of formal methods on the development process and associated costs. - Application of formal methods in standardization and industrial forums. INVITED SPEAKERS ---------------- To be announced CO-CHAIRS --------- Maria Alpuente Tech. University Valencia, Spain Byron Cook Microsoft Research, UK PROGRAM COMMITTEE ------------------- Hassan Ait-Kaci Ilog, Canada Maria Alpuente Tech. University Valencia, Spain Thomas Arts IT-Univ. i Goteborg, Sweden Demis Ballis Universita Udine, Italy Josh Berdine Microsoft Research, UK Lubos Brim Masarykova Univ., Czech Republic Darren Cofer Rockwell Collins, USA Byron Cook Microsoft Research, UK Patrick Cousot Ecole Normale Superieure, France Santiago Escobar Tech. University Valencia, Spain Azadeh Farzan University of Toronto, Canada Hubert Garavel INRIA Rhone-Alpes, France Stefania Gnesi ISTI-CNR, Italy Alexey Gotsman University of Cambridge, UK Holger Hermanns Universitat Saarlandes, Germany Christophe Joubert Tech. University Valencia, Spain Daniel Kroening ETH Zurich, Switzerland Michael Leuschel Universitat Dusseldorf, Germany Pedro Merino Universidad de Malaga, Spain Juan Jose Moreno-Navarro Univ. Politecnica Madrid, Spain Corina Pasareanu NASA Ames Research Center, USA Jaco van de Pol Univ. Twente, The Netherlands Murali Rangarajan Honeywell, USA Jakob Rehof Tech. Univ. Dortmund, Germany Andrey Rybalchenko Max-Planck-Gesellschaft, Germany Marcel Verhoef Chess, The Netherlands Martin Wirsing Universitat Munchen, Germany Hongseok Yang University of London, UK Greta Yorsh IBM Watson Research Center, USA ERCIM FMICS WG COORDINATOR -------------------------- Alessandro Fantechi Univ. Firenze, ISTI-CNR, Italy WORKSHOP CHAIR -------------- Christophe Joubert Tech. University Valencia, Spain PAPER SUBMISSIONS ----------------- Submissions must be made electronically through the EasyChair system. Papers should be up to 16 pages in LNCS format, with the names and affiliations of the authors and a clear and informative abstract. Additional details may be included in a clearly marked appendix, which will be read at the discretion of the program committee. All submissions must report on original research. Submitted papers must not have previously appeared in a journal or conference with published proceedings and must not be concurrently submitted to any other peer-reviewed workshop, symposium, conference or archival journal. Any partial overlap with any such published or concurrently submitted paper must be clearly indicated. Case study papers should identify lessons learned, validate theoretical results (such as scalability of methods), or provide specific motivation for further research and development. The workshop proceedings will be published in the Springer series Lecture Notes in Computer Science (LNCS). CO-LOCATION ----------- FMICS 2009 is part of the first Formal Methods Week (FMweek), which will bring together a choice of events in the area, including TESTCOM/FATES (Conference on Testing of Communicating Systems and Workshop on Formal Approaches to Testing of Software), FACS (Formal Aspects of Component Software), PDMC (Parallel and Distributed Methods of verifiCation), FM2009 (Symposium of Formal Methods Europe), CPA (Communicating Process Architectures), FAST (Formal Aspects of Security and Trust), FMCO (Formal Methods for Components and Objects), and the REFINE Workshop. For the latest information on FMweek, see http://www.win.tue.nl/fmweek. ************************************************************ * * * +============================================+ * * | | * * | ** FMweek ** | * * | | * * +============================================+ * * | CPA | FACS | FAST | * * +--------------------------------------------+ * * | FM2009 | FMCO | FMICS | * * +--------------------------------------------+ * * | PDMC | REFINE | TESTCOM/FATES | * * +--------------------------------------------+ * * | http://www.win.tue.nl/fmweek | * * +============================================+ * * * ************************************************************ From rc.dickerson at gmail.com Tue Jan 20 11:48:49 2009 From: rc.dickerson at gmail.com (Robert Dickerson) Date: Tue Jan 20 11:39:41 2009 Subject: [Haskell] Re: HaskellWiki Update In-Reply-To: References: Message-ID: Not sure how much of this is already known, but thought I'd mention it just in case... Both Wikimedia and chongqed.org maintain a spam domain blacklist: http://meta.wikimedia.org/wiki/Spam_blacklist http://blacklist.chongqed.org/ And there is Wikimedia extension that requires users to pass a captcha to make edits, but it only works with Wikimedia 1.6+: http://www.mediawiki.org/wiki/Extension:ConfirmEdit (I've never made an edit to the Haskell wiki, so for all I know there might be a captcha system in place already). Again, sorry if this is already common knowledge. On Mon, Jan 19, 2009 at 2:41 AM, Heinrich Apfelmus < apfelmus@quantentunnel.de> wrote: > Ashley Yakeley wrote: > > There has been a lot of spam on HaskellWiki. Since anonymous edits have > > been switched off, a spammer tactic has been to create hundreds of > > accounts to evade individual account blocks. > > > > To combat this, I have > > > > 1. deleted all user accounts that have made no edits; > > 2. switched off account creation; > > 3. blocked at least some of the remaining spam accounts. > > > > This is obviously not ideal, as there is now no way for new users to > > edit the wiki. I will investigate appropriate ways to allow account > > creation. > > Maybe it could help to restrict the account creation rate per IP? For > example, every IP may only create one account per 12 hours. > > > Regards, > apfelmus > > -- > http://apfelmus.nfshost.com > > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090120/c132f91e/attachment.htm From nabble at scifi.geek.nz Tue Jan 20 19:22:52 2009 From: nabble at scifi.geek.nz (NeonGraal) Date: Tue Jan 20 19:13:43 2009 Subject: [Haskell] HaskellWiki Update In-Reply-To: References: Message-ID: <21574749.post@talk.nabble.com> Ashley Yakeley wrote: > > There has been a lot of spam on HaskellWiki. Since anonymous edits have > been switched off, a spammer tactic has been to create hundreds of > accounts to evade individual account blocks. > > To combat this, I have > 1. deleted all user accounts that have made no edits; > 2. switched off account creation; > 3. blocked at least some of the remaining spam accounts. > > This is obviously not ideal, as there is now no way for new users to > edit the wiki. I will investigate appropriate ways to allow account > creation. > > -- > Ashley Yakeley > Darn, As someone who only maintained a Wiki account to customize the Look and feel of the wiki, I did wonder where my account had gone. It would be nice if there was a comment to this effect on the Login / Registration page of the Wiki. Also another possible solution (if it's possible) would be to allow general creation of read-only accounts and then have a manual / moderated process for upgrading accounts to read-write. TTFN, Struan -- View this message in context: http://www.nabble.com/HaskellWiki-Update-tp21524334p21574749.html Sent from the Haskell - Haskell mailing list archive at Nabble.com. From gwern0 at gmail.com Tue Jan 20 19:33:13 2009 From: gwern0 at gmail.com (Gwern Branwen) Date: Tue Jan 20 19:24:08 2009 Subject: [Haskell] HaskellWiki Update In-Reply-To: <21574749.post@talk.nabble.com> References: <21574749.post@talk.nabble.com> Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On Tue, Jan 20, 2009 at 7:22 PM, NeonGraal wrote: > > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEAREKAAYFAkl2bTwACgkQvpDo5Pfl1oJPmACfaAbslKFWIXm2PVDC23ezXwcA vWkAnjK+6Rj0WYvjTDLllgcxasoF+rUc =Hrf0 -----END PGP SIGNATURE----- > > Ashley Yakeley wrote: >> >> There has been a lot of spam on HaskellWiki. Since anonymous edits have >> been switched off, a spammer tactic has been to create hundreds of >> accounts to evade individual account blocks. >> >> To combat this, I have >> 1. deleted all user accounts that have made no edits; >> 2. switched off account creation; >> 3. blocked at least some of the remaining spam accounts. >> >> This is obviously not ideal, as there is now no way for new users to >> edit the wiki. I will investigate appropriate ways to allow account >> creation. >> >> -- >> Ashley Yakeley >> > > Darn, > > As someone who only maintained a Wiki account to customize the Look and feel > of the wiki, I did wonder where my account had gone. > > It would be nice if there was a comment to this effect on the Login / > Registration page of the Wiki. > > Also another possible solution (if it's possible) would be to allow general > creation of read-only accounts and then have a manual / moderated process > for upgrading accounts to read-write. > > TTFN, Struan Probably not. I've never heard of MediaWiki supporting read-only accounts (without abusing methods like blocking, obviously). -- gwern From afc at aber.ac.uk Wed Jan 21 05:56:25 2009 From: afc at aber.ac.uk (Amanda Clare) Date: Wed Jan 21 05:49:27 2009 Subject: [Haskell] HaskellWiki Update In-Reply-To: References: <21574749.post@talk.nabble.com> Message-ID: <4976FF59.3030709@aber.ac.uk> Gwern Branwen wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 > > On Tue, Jan 20, 2009 at 7:22 PM, NeonGraal wrote: >> > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (GNU/Linux) > > iEYEAREKAAYFAkl2bTwACgkQvpDo5Pfl1oJPmACfaAbslKFWIXm2PVDC23ezXwcA > vWkAnjK+6Rj0WYvjTDLllgcxasoF+rUc > =Hrf0 > -----END PGP SIGNATURE----- > >> Ashley Yakeley wrote: >>> There has been a lot of spam on HaskellWiki. Since anonymous edits have >>> been switched off, a spammer tactic has been to create hundreds of >>> accounts to evade individual account blocks. >>> >>> To combat this, I have >>> 1. deleted all user accounts that have made no edits; >>> 2. switched off account creation; >>> 3. blocked at least some of the remaining spam accounts. >>> >>> This is obviously not ideal, as there is now no way for new users to >>> edit the wiki. I will investigate appropriate ways to allow account >>> creation. >>> >>> -- >>> Ashley Yakeley >>> >> Darn, >> >> As someone who only maintained a Wiki account to customize the Look and feel >> of the wiki, I did wonder where my account had gone. >> >> It would be nice if there was a comment to this effect on the Login / >> Registration page of the Wiki. >> >> Also another possible solution (if it's possible) would be to allow general >> creation of read-only accounts and then have a manual / moderated process >> for upgrading accounts to read-write. >> >> TTFN, Struan > > Probably not. I've never heard of MediaWiki supporting read-only > accounts (without abusing methods like blocking, obviously). > I think you can enable or disable permissions such as "edit" for groups of users in MediaWiki. You should be able to use groups to give the appropriate permissions: http://stackoverflow.com/questions/219135/how-do-i-create-my-own-custom-group-in-mediawiki Amanda From patrikj at chalmers.se Thu Jan 22 10:30:06 2009 From: patrikj at chalmers.se (Patrik Jansson) Date: Thu Jan 22 10:20:51 2009 Subject: [Haskell] (CfP) WGP'09: Workshop on Generic Programming Call for Papers Message-ID: <497890FE.1050307@chalmers.se> Interested Haskellers are encouraged to submit by 090510. The scope is generic programming in a broad sense (not limited to datatype-generic programming) so almost any Haskell development fits subjectwise! /Patrik --------------------------- ACM SIGPLAN Workshop on Generic Programming 2009 Edinburgh, UK, August 30, 2009 http://wiki.portal.chalmers.se/cse/WGP09 Goals of the workshop Generic programming is about making programs more adaptable by making them more general. Generic programs often embody non-traditional kinds of polymorphism; ordinary programs are obtained from them by suitably instantiating their parameters. In contrast with normal programs, the parameters of a generic program are often quite rich in structure; for example they may be other programs, types or type constructors, class hierarchies, or even programming paradigms. Generic programming techniques have always been of interest, both to practitioners and to theoreticians, and for at least 20 years generic programming techniques have been a specific focus of research in the functional and object-oriented programming language communities. Generic programming has gradually spread to more and more mainstream languages and is today widely used also in industry. This workshop will bring together leading researchers and practitioners in generic programming from around the world, and feature papers capturing the state of the art in this important area. We welcome contributions on all aspects, theoretical as well as practical, of * adaptive object-oriented programming, * aspect-oriented programming, * concepts (as in the STL / C++ sense) * component-based programming, * generic programming, * meta-programming, * polytypic programming, * programming with modules, * and so on. Organisers: Chair Patrik Jansson, CSE.Chalmers.se co-Chair Sibylle Schupp, STS.TUHH.de Programme Committee: Edwin Brady, U. of St Andrews, Peter Gottschling, TU Dresden Patrik Jansson, Chalmers Chair Barry Jay, U. of T., Sydney Jaakko J?rvi, Texas A&M Oleg Kiselyov, FNMOC Andres L?h, Utrecht U. Fritz Ruehr, Willamette U. Sibylle Schupp, TU Hamburg Harburg, Co-Chair Marcin Zalewski, Chalmers, We plan to have formal proceedings, published by the ACM. Submission details Deadline for submission: Sunday 090510 Notification of acceptance: Monday 090601 Final submission due: Tuesday 090616 Workshop: Sunday 090830 Authors should submit papers, in postscript or PDF format, formatted for A4 paper, to the WGP09 EasyChair instance by 10th of May 2009. The length should be restricted to 12 pages in standard (two-column, 9pt) ACM format. Accepted papers are published by the ACM and will additionally appear in the ACM digital library. History of the Workshop on Generic Programming This year: * Edinburgh, UK 2009 (affiliated with ICFP09) Earlier Workshops on Generic Programming have been held in * Victoria, BC, Canada 2008 (affiliated with ICFP), * Portland 2006 (affiliated with ICFP), * Utrecht 2005 (informal workshop), * Dagstuhl 2002 (IFIP WG2.1 Working Conference), * Nottingham 2001 (informal workshop), * Ponte de Lima 2000 (affiliated with MPC), * Marstrand 1998 (affiliated with MPC). There were also (closely related) DGP workshops in Oxford (June 3-4 2004), and a Spring School on DGP in Nottingham (April 24-27 2006, which had a half-day workshop attached). Additional information: The WGP steering committee consists of J Gibbons, R Hinze and J Jeuring. From byorgey at seas.upenn.edu Sat Jan 24 11:04:22 2009 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Sat Jan 24 10:55:23 2009 Subject: [Haskell] Haskell Weekly News: Issue 102 - January 24, 2009 Message-ID: <20090124160422.GA30178@seas.upenn.edu> --------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20090124 Issue 102 - January 24, 2009 --------------------------------------------------------------------------- Welcome to issue 102 of HWN, a newsletter covering developments in the [1]Haskell community. Announcements Monoids and fingertrees. Heinrich Apfelmus posted a [2]nice tutorial explaining the monoid magic behind 2-3 fingertrees. STM-IO-Hooks-0.0.1. Peter Robinson [3]announced the [4]stm-io-hooks library, which provides an STM monad with commit and retry IO hooks. A retry-action is run (once) in a separate thread if the transaction retries, while commit-actions are executed iff the transaction commits. The code is based on the [5]AdvSTM monad by Chris Kuklewicz, but in addition also ensures some atomicity guarantees for commit-actions. 1000 libraries. Don Stewart [6]announced that Hackage has now [7]reached 1000 packages! HTTP-4000.0.4 released. Sigbjorn Finne [8]announced that a new release of [9]HTTP, version 4000.0.4, is now available. The main change is the addition of registering a Browser event handler for capturing state changes to the request-response processing pipeline. Blog noise [10]Haskell news from the [11]blogosphere. * Luke Palmer: [12]Existential Memoization. * Luke Palmer: [13]The Third Virtue. Luke has a Grand Vision (TM)! * Darcs: [14]darcs weekly news #14. * Magnus Therning: [15]More sensible comments on cabal-debian. * GHC / OpenSPARC Project: [16]Wait and perform. * LHC Team: [17]Typeclasses are working, now we're missing a bunch of instances.... * Andy Gill: [18]Memoization in GHC. A cool tutorial on how to memoize a pure function with GHC, without changing the function's definition. * Magnus Therning: [19]Experience with cabal-debian. * Joachim Breitner: [20]darcswatch uploaded to hackage. * GHC / OpenSPARC Project: [21]The Strap. * Real-World Haskell: [22]Bryan O'Sullivan on the Power of Haskell. * Jeff Heard: [23]Visualizing groundwater nitrate concentration. * Don Stewart (dons): [24]Open source releases and growth. * Lennart Augustsson: [25]Performance update on LLVM. * Arch Haskell News: [26]Piet implementation for Arch. * Mark Jason Dominus: [27]Triples and Closure. Did you know that monads are like closure operators? If not, read on. * GHC / OpenSPARC Project: [28]The Grind. * LHC Team: [29]Functions in Haskell.. * Magnus Therning: [30]Building Debian packages of (cabalised) Haskell packages. * Xmonad: [31]xmonad cheatsheet. * Xmonad: [32]xmonad on twitter. * Jeff Heard: [33]A random note on programming with Gtk2Hs.. * Xmonad: [34]xmonad 0.8.1 : GHC 6.10 maintenance release. * Jonathan Tang: [35]Some observations on Kinds. * Martijn van Steenbergen: [36]Type Synonym Families. Quotes of the Week * Jonathan Cast: [on advertising for Haskell programmers and informing them that the codebase is actually in Perl at the interview] That's......evil. I know. I'm evil too, though. So it's cool. * rwbarton: A type class is not a type just like a dog house is not a dog. * SPJ: [This is] clearly not a bug in GHC; but it would be more felicitous if it gave you a warning... * Gracenotes: > let o_o = 0.0 ;o' =(, ); ;o (*)=(*) ;( lol, xD :p )= o' o' $o.o$ (:[]) $o.o$ (:[]) o_o in (:[]) o_o :p * Cale: I plan on forming a symbiotic relationship with sandtrout, which, as they merge with my body, will sustain me as I slowly turn into a sandworm, and make use of my billions of other memories and prescience to rule over everyone and everything for millenia. * quicksilver: or in Java, we'd make it more generic by using a PolynomialDivisionOperatorFactory. * roconnor: I was going to read about laziness, but I decided to do it later, when I need to understand it. About the Haskell Weekly News New editions are posted to [37]the Haskell mailing list as well as to [38]the Haskell Sequence and [39]Planet Haskell. [40]RSS is also available, and headlines appear on [41]haskell.org. To help create new editions of this newsletter, please see the information on [42]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [43]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://apfelmus.nfshost.com/monoid-fingertree.html 3. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51249 4. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/stm-io-hooks 5. http://www.haskell.org/haskellwiki/New_monads/MonadAdvSTM 6. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51186 7. http://hackage.haskell.org/cgi-bin/hackage-scripts/stats 8. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51165 9. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HTTP 10. http://planet.haskell.org/ 11. http://haskell.org/haskellwiki/Blog_articles 12. http://lukepalmer.wordpress.com/2009/01/24/existential-memoization/ 13. http://lukepalmer.wordpress.com/2009/01/24/the-third-virtue/ 14. http://blog.darcs.net/2009/01/darcs-weekly-news-14.html 15. http://therning.org/magnus/archives/485 16. http://ghcsparc.blogspot.com/2009/01/wait-and-perform.html 17. http://lhc-compiler.blogspot.com/2009/01/typeclasses-are-working-now-were.html 18. http://blog.unsafeperformio.com/?p=34 19. http://therning.org/magnus/archives/476 20. https://www.joachim-breitner.de/blog/archives/317-darcswatch-uploaded-to-hackage.html 21. http://ghcsparc.blogspot.com/2009/01/strap.html 22. http://www.realworldhaskell.org/blog/2009/01/21/bryan-osullivan-on-the-power-of-haskell/ 23. http://vis.renci.org/jeff/?p=63 24. http://donsbot.wordpress.com/2009/01/21/open-source-releases-and-growth/ 25. http://augustss.blogspot.com/2009/01/performance-update-ive-continued.html 26. http://archhaskell.wordpress.com/2009/01/20/piet-now-packaged/ 27. http://blog.plover.com/math/monad-closure.html 28. http://ghcsparc.blogspot.com/2009/01/grind.html 29. http://lhc-compiler.blogspot.com/2009/01/functions-in-haskell.html 30. http://therning.org/magnus/archives/458 31. http://xmonad.wordpress.com/2009/01/19/xmonad-cheatsheet/ 32. http://xmonad.wordpress.com/2009/01/19/xmonad-on-twitter/ 33. http://vis.renci.org/jeff/?p=24 34. http://xmonad.wordpress.com/2009/01/19/xmonad-081-ghc-610-maintainance-release/ 35. http://eve-language.blogspot.com/2009/01/some-observations-on-kinds.html 36. http://martijn.van.steenbergen.nl/journal/2009/01/11/type-synonym-families/ 37. http://www.haskell.org/mailman/listinfo/haskell 38. http://sequence.complete.org/ 39. http://planet.haskell.org/ 40. http://sequence.complete.org/node/feed 41. http://haskell.org/ 42. http://haskell.org/haskellwiki/HWN 43. http://code.haskell.org/~byorgey/code/hwn/ From gwern0 at gmail.com Sat Jan 24 19:25:50 2009 From: gwern0 at gmail.com (Gwern Branwen) Date: Sat Jan 24 19:16:30 2009 Subject: [Haskell] ANN: filestore 0.1 In-Reply-To: References: Message-ID: ANN filestore 0.1 We are pleased to announce the first release of a new library, filestore. What is it? filestore provides a uniform, abstract, generic interface for storing versioned files on disk. It allows calling programs to use generic commands to store strings or binary data and perform various queries, such as 'what files are in this repository?' or 'what were the contents of this file at revision XXXXXXX?' or 'give me a diff of this file between revision XXXXXXX and revision YYYYYYY.' Because the interface is abstract, the calling program is insulated from the messy details of the backend (which might be a VCS or a database). What backends are supported? Darcs and Git are fully supported. There are plans for a SQLite backend. What is this good for? Currently it is used by two wikis, Gitit and Orchid. We hope it will see use in other applications as well that need to version data and would like the various advantages of DVCSs (such as easy collaboration, advanced merging, etc.). Where can you get it? Your local cabal-install, Hackage at http://hackage.haskell.org/cgi-bin/hackage-scripts/package/filestore and of course you can do 'darcs get http://johnmacfarlane.net/repos/filestore' for the very latest. filestore was written by John MacFarlane, Gwern Branwen, and Sebastiaan Visser -- gwern From t.h at gmx.info Sun Jan 25 18:32:30 2009 From: t.h at gmx.info (Timo B. =?utf-8?q?H=C3=BCbel?=) Date: Sun Jan 25 18:23:41 2009 Subject: [Haskell] ANN: Hayoo! beta 0.3 Message-ID: <200901260032.30858.t.h@gmx.info> Hello! We are pleased to announce the next beta version 0.3 of Hayoo!, the Haskell API search engine with find-as-you-type and suggestions. Visit Hayoo! here: http://holumbus.fh-wedel.de/hayoo Basically, there is one new major feature available: Hayoo! now works even if your browser does not support JavaScript. Of course, this means that you won't have the find-as-you-type functionality, but everything else will be available. Hence everybody who has been scared away from Hayoo! because of all this crazy AJAX stuff now has no excuse anymore for not using Hayoo! ;-) Along the way we fixed several minor bugs and slightly improved the ranking algorithm as well as the help page. Since the last official announcement we were also able to bring back the source links. Still to come in the next weeks is a major index update to reflect the incredible package growth on Hackage. Please let us know about any problems, hints and suggestions. Happy hacking, Timo From oleg at okmij.org Tue Jan 27 07:51:44 2009 From: oleg at okmij.org (oleg@okmij.org) Date: Tue Jan 27 07:43:49 2009 Subject: [Haskell] type inference & instance extensions Message-ID: <20090127125144.6E95FAB11@Adric.metnet.fnmoc.navy.mil> Doug McIlroy wrote: > A fragment of an attempt to make pairs serve as complex numbers, > using ghc/hugs extensions: > > instance Num a => Num (a,a) where > (x,y) * (u,v) = (x*u-y*v, x*v+y*u) > > Unfortunately, type inference isn't strong enough to cope with > > (1,1)*(1,1) It is not quite difficult to tell the type checker that if pairs of numbers are numbers, the two components of the pair must have the same type. We say so literally. We first should make the instance more general to permit any pair, of the type (a,b) to match. We next impose the constraint that the types a and b must be in the class Num; furthermore, the types a and b must be the same. Here is the complete solution that should work on GHC 6.4, 6.6, 6.8, and probably of earlier and later versions. > {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, > UndecidableInstances, FlexibleInstances #-} > > module D where > > instance (Num a, Num b, TypeCast b a, TypeCast a b) => Num (a,b) where > (x,y) * (u,v) = (typeCast x * typeCast u - typeCast y * typeCast v, > typeCast x * typeCast v + typeCast y * typeCast u) > (x,y) + (u,v) = (typeCast x + typeCast u, > typeCast y + typeCast v) > (x,y) - (u,v) = (typeCast x - typeCast u, > typeCast y - typeCast v) > fromInteger x = (fromInteger x, 0) > > test1 = (1,1) * (2,2) -- (0.0,4.0) > test2 = (1.1,1) * (2,2) -- (0.20000000000000018,4.2) > test3 = test1 * test2 -- (-16.8,0.8000000000000007) > test4 = (test1 + test3) * (test1 - test3) -- (-297.6,26.880000000000024) > test4' = -16 - test3 * test3 -- (-297.6,26.880000000000024) > > class TypeCast a b | a -> b, b->a where typeCast :: a -> b > class TypeCast' t a b | t a -> b, t b -> a where typeCast' :: t->a->b > class TypeCast'' t a b | t a -> b, t b -> a where typeCast'' :: t->a->b > instance TypeCast' () a b => TypeCast a b where typeCast x = typeCast' () x > instance TypeCast'' t a b => TypeCast' t a b where typeCast' = typeCast'' > instance TypeCast'' () a a where typeCast'' _ x = x As one can see, we added typeCast before every variable, indicating that an application of the equality constraint is needed. We let the GHC figure out what should be `cast' to what. The recent versions of GHC have a nifty equality constraint, so the code can be written simply > {-# LANGUAGE TypeFamilies #-} > > {-# OPTIONS -fglasgow-exts #-} > {-# OPTIONS -fallow-undecidable-instances #-} > > module D where > > instance (Num a, Num b, a ~ b) => Num (a,b) where > (x,y) * (u,v) = (x*u-y*v, x*v+y*u) > > test1 = (1,1) * (2,2) It does typecheck in GHC 6.8.2; alas, running the code produces > ghc-6.8.2: panic! (the 'impossible' happened) > (GHC version 6.8.2 for i386-unknown-freebsd): > nameModule $dNum{v aJiF} I guess one needs to upgrade to GHC 6.10. The solution using TypeCast, however inelegant, works on GHC 6.8 and earlier compilers. From haskell at list.mightyreason.com Tue Jan 27 12:41:22 2009 From: haskell at list.mightyreason.com (ChrisK) Date: Tue Jan 27 12:31:54 2009 Subject: [Haskell] type inference & instance extensions In-Reply-To: <20090127125144.6E95FAB11@Adric.metnet.fnmoc.navy.mil> References: <20090127125144.6E95FAB11@Adric.metnet.fnmoc.navy.mil> Message-ID: <497F4742.6040701@list.mightyreason.com> In ghc 6.10.1 the ~ constraint is working: > {-# LANGUAGE TypeFamilies #-} > > {-# OPTIONS -fglasgow-exts #-} > {-# OPTIONS -fallow-undecidable-instances #-} > > module D where > > instance (Num a, Num b, a ~ b) => Num (a,b) where > (x,y) * (u,v) = (x*u-y*v, x*v+y*u) > > test1 = (1,1) * (2,2) > > test2 = (1,1.0)*(2,2) With ghci: *D> test1 test1 (0,4) *D> test2 test2 (0.0,4.0) *D> :t test1 :t test1 test1 :: (Integer, Integer) *D> :t test2 :t test2 test2 :: (Double, Double) -- Chris From coreyoconnor at gmail.com Tue Jan 27 13:05:39 2009 From: coreyoconnor at gmail.com (Corey O'Connor) Date: Tue Jan 27 12:56:08 2009 Subject: [Haskell] type inference & instance extensions In-Reply-To: <20090127125144.6E95FAB11@Adric.metnet.fnmoc.navy.mil> References: <20090127125144.6E95FAB11@Adric.metnet.fnmoc.navy.mil> Message-ID: On Tue, Jan 27, 2009 at 4:51 AM, wrote: > Doug McIlroy wrote: >> A fragment of an attempt to make pairs serve as complex numbers, >> using ghc/hugs extensions: >> >> instance Num a => Num (a,a) where >> (x,y) * (u,v) = (x*u-y*v, x*v+y*u) > The recent versions of GHC have a nifty equality constraint, so the > code can be written simply I'm confused on why instance Num a => Num (a, a) where is not equivalent to instance (Num a, Num b, a ~ b) => Num (a, b) where I don't know the details of the type inference algorithm. What am I missing to understand why they are not the same? Cheers, Corey O'Connor From ganesh.sittampalam at credit-suisse.com Tue Jan 27 13:18:01 2009 From: ganesh.sittampalam at credit-suisse.com (Sittampalam, Ganesh) Date: Tue Jan 27 13:08:40 2009 Subject: [Haskell] type inference & instance extensions In-Reply-To: References: <20090127125144.6E95FAB11@Adric.metnet.fnmoc.navy.mil> Message-ID: <16442B752A06A74AB4D9F9A5FF076E4B4DCB4F@ELON17P32001A.csfb.cs-group.com> Corey O'Connor wrote: > On Tue, Jan 27, 2009 at 4:51 AM, wrote: >> Doug McIlroy wrote: >>> A fragment of an attempt to make pairs serve as complex numbers, >>> using ghc/hugs extensions: >>> >>> instance Num a => Num (a,a) where >>> (x,y) * (u,v) = (x*u-y*v, x*v+y*u) >> The recent versions of GHC have a nifty equality constraint, so the >> code can be written simply > > I'm confused on why > instance Num a => Num (a, a) where > > is not equivalent to > instance (Num a, Num b, a ~ b) => Num (a, b) where > > I don't know the details of the type inference algorithm. What am I > missing to understand why they are not the same? Type inference doesn't backtrack, and it starts by giving different expressions different free type variables. So it doesn't initially "know" that the two numeric literals in the tuple have the same type, and so the instance ... => Num (a, a) doesn't apply - after all, there might be some different instance where the two tuple elements are of different types. In contrast Num (a, b) will always apply, and only later do we discover that we've forced a = b by selecting it. But that's fine as there's no possibility of another Num instance for tuples (ignoring overlapping instances for now). Ganesh ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ============================================================================== From jonathanccast at fastmail.fm Tue Jan 27 13:24:31 2009 From: jonathanccast at fastmail.fm (Jonathan Cast) Date: Tue Jan 27 13:16:30 2009 Subject: [Haskell] type inference & instance extensions In-Reply-To: References: <20090127125144.6E95FAB11@Adric.metnet.fnmoc.navy.mil> Message-ID: <1233080671.25364.5.camel@jcchost> On Tue, 2009-01-27 at 10:05 -0800, Corey O'Connor wrote: > On Tue, Jan 27, 2009 at 4:51 AM, wrote: > > Doug McIlroy wrote: > >> A fragment of an attempt to make pairs serve as complex numbers, > >> using ghc/hugs extensions: > >> > >> instance Num a => Num (a,a) where > >> (x,y) * (u,v) = (x*u-y*v, x*v+y*u) > > The recent versions of GHC have a nifty equality constraint, so the > > code can be written simply > > I'm confused on why > instance Num a => Num (a, a) where The head of this instance is Num (a, a), while > is not equivalent to > instance (Num a, Num b, a ~ b) => Num (a, b) where the head of this instance is Num (a, b) So if GHC doesn't already have an equation a ~ b in scope, it'll skip the first instance during instance search, but find the second one (incidentally introducing the equation a ~ b as above). So GHC is more aggressive about using the second instance. (Or, to put it another way: instance selection ignores the context on the instance. Or, to put it another way: the context on the instance is part of the *output* of instance selection, not the input). jcc From demis at dimi.uniud.it Wed Jan 28 11:18:47 2009 From: demis at dimi.uniud.it (demis@dimi.uniud.it) Date: Wed Jan 28 11:09:19 2009 Subject: [Haskell] Last CfP: WWV 2009 Message-ID: <20090128161848.A56333FC1E3@sole.dimi.uniud.it> Skipped content of type multipart/alternative From sweirich at cis.upenn.edu Thu Jan 29 10:08:33 2009 From: sweirich at cis.upenn.edu (Stephanie Weirich) Date: Thu Jan 29 10:00:20 2009 Subject: [Haskell] CFP Haskell Symposium 2009 Message-ID: <285062F9-732B-4370-BE1C-D5DCDB9C9CF0@cis.upenn.edu> Haskell 09 ACM SIGPLAN Haskell Symposium 2009 Edinburgh, Scotland, UK September 3, 2009 CALL FOR PAPERS http://haskell.org/haskell-symposium/2009/ The ACM SIGPLAN Haskell Symposium 2009 will be co-located with the 2009 International Conference on Functional Programming (ICFP). The purpose of the Haskell Symposium is to discuss experiences with Haskell and future developments for the language. The scope of the symposium includes all aspects of the design, semantics, theory, application, implementation, and teaching of Haskell. Topics of interest include, but are not limited to, the following: * Language Design, with a focus on possible extensions and modifications of Haskell as well as critical discussions of the status quo; * Theory, in the form of a formal treatment of the semantics of the present language or future extensions, type systems, and foundations for program analysis and transformation; * Implementations, including program analysis and transformation, static and dynamic compilation for sequential, parallel, and distributed architectures, memory management as well as foreign function and component interfaces; * Tools, in the form of profilers, tracers, debuggers, pre-processors, and so forth; * Applications, Practice, and Experience, with Haskell for scientific and symbolic computing, database, multimedia and Web applications, and so forth as well as general experience with Haskell in education and industry; * Functional Pearls, being elegant, instructive examples of using Haskell. Papers in the latter two categories need not necessarily report original research results; they may instead, for example, report practical experience that will be useful to others, re-usable programming idioms, or elegant new ways of approaching a problem. The key criterion for such a paper is that it makes a contribution from which other Haskellers can benefit. It is not enough simply to describe a program! Before 2008, the Haskell Symposium was known as the Haskell Workshop. The name change reflects both the steady increase of influence of the Haskell Workshop on the wider community as well as the increasing number of high quality submissions. The acceptance process is highly competitive. After eleven Haskell Workshops between 1995 and 2007, the first Haskell Symposium was held in Victoria in 2008. Submission Details * Submission Deadline: Friday, May 8th 2009 (3:00 pm, Eastern US Time) * Author Notification: Monday, June 1st 2009 * Final Papers Due : Monday, June 15th 2009 Submitted papers should be in portable document format (PDF), formatted using the ACM SIGPLAN style guidelines (http://www.acm.org/sigs/sigplan/authorInformation.htm). The length is restricted to 12 pages, and the font size 9pt. Each submission must adhere to SIGPLAN's republication policy, as explained on the web. Violation risks summary rejection of the offending submission. Accepted papers will be published by the ACM and will appear in the ACM Digital Library. If there is sufficient demand, we will try to organize a time slot for system or tool demonstrations. If you are interested in demonstrating a Haskell related tool or application, please send a brief demo proposal to Stephanie Weirich, sweirich@cis.upenn.edu. Links * http://haskell.org/haskell-symposium, the permanent homepage of the Haskell Symposium. * http://haskell.org/haskell-symposium/2009/, the 2009 Haskell Symposium web page. * http://www.icfpconference.org/icfp2009, the ICFP 2009 web page. Program Committee * Jeremy Gibbons, Oxford University * Bastiaan Heeren, Open Universiteit Nederland * John Hughes, Chalmers/Quviq * Mark Jones, Portland State University * Simon Marlow, Microsoft Research * Ulf Norell, Chalmers * Chris Okasaki, United States Military Academy * Ross Paterson, City University London * Alexey Rodriguez Yakushev, Vector Fabrics * Don Stewart, Galois * Janis Voigtlaender, TU Dresden * Stephanie Weirich, University of Pennsylvania (Chair) From leather at cs.uu.nl Fri Jan 30 09:28:53 2009 From: leather at cs.uu.nl (Sean Leather) Date: Fri Jan 30 09:19:51 2009 Subject: [Haskell] ANNOUNCE: Extensible and Modular Generics for the Masses: emgm-0.2 Message-ID: <3c6288ab0901300628s6a3c82a8h5d927f683f532b57@mail.gmail.com> ============================================== Extensible and Modular Generics for the Masses ============================================== Extensible and Modular Generics for the Masses (EMGM) is a library for generic programming in Haskell using type classes and a sum-of-products view. ------------ Introduction ------------ emgm-0.2 is the second major release of the EMGM library. A lot of work has been done since the initial release to build a solid set of functions that will allow you to derive the necessary declarations for using EMGM with your datatype. Thus, you don't have to write much code to get started. A great deal of documentation has also been added. There's a comprehensive new entry page for Generics.EMGM that should help one figure out what to do with this library. We plan to publish articles providing more examples as well. With these two improvements, you have no more excuses for not trying it out. Download EMGM and see what you can do, generically! ------------ New Features ------------ Improvements over emgm-0.1 include: * Derive type representation using Template Haskell [1] * Major improvement in documentation with Haddock * bimap function [2] [1] Here is a snippet from the documentation that shows what you save when using TH over manual implementation. > {-# LANGUAGE TemplateHaskell #-} > {-# LANGUAGE MultiParamTypeClasses #-} > {-# LANGUAGE FlexibleContexts #-} > {-# LANGUAGE FlexibleInstances #-} > {-# LANGUAGE OverlappingInstances #-} > {-# LANGUAGE UndecidableInstances #-} > module Example where > import Generics.EMGM > data T a = C a Int > $(derive ''T) The $(derive ''T) declaration in the above example generates the following code: 1. Constructor description declarations (1 per constructor) > conC :: ConDescr > conC = ConDescr "C" 2 [] Nonfix 2. Embedding-projection pair declarations (1 per type) > epT :: EP (T a) (a :*: Int) > epT = EP fromT toT > where fromT (C v1 v2) = v1 :*: v2 > toT (v1 :*: v2) = C v1 v2 3. Rep instance (1 per type) > instance (Generic g, Rep g a, Rep g Int) => Rep g (T a) where > rep = rtype epT (rcon conC (rprod rep rep)) 4. Higher arity instances if applicable (either FRep, FRep2, and FRep3 together, or BiFRep2) > instance (Generic g) => FRep g T where > frep ra = rtype epT (rcon conC (rprod ra rint)) In this case, similar instances would be generated for FRep2 and FRep3. 5. Function-specific instances (1 per type) > instance Rep (Collect Char) Char where > rep = Collect (:[]) [2] EMGM has a new function bimap and its related representation type class BiFRep2: > bimap :: (BiFRep2 Map f) => (a -> c) -> (b -> d) -> f a b -> f c d With bimap, you can do the following in GHCi: *Generics.EMGM Data.Char Prelude> bimap ord chr ('a',65) (97,'A') *Generics.EMGM Data.Char Prelude> bimap (++" So Long!") (const 42) (Right "Earth") Right 42 ------------------- General Information ------------------- Visit the home page: http://www.cs.uu.nl/wiki/GenericProgramming/EMGM ---------------- General Features ---------------- The primary features of EMGM include: * Datatype-generic programming using sum-of-product views * Large collection of ready-to-use generic functions * Included support for standard datatypes: lists, Maybe, tuples * Easy to add support for new datatypes * Type classes make writing new functions straightforward in a structurally inductive style * Generic functions are extensible with ad-hoc cases for arbitrary datatypes * Good performance of generic functions The features of this distribution include: * The API is thoroughly documented with Haddock * Fully tested with QuickCheck and HUnit * Program coverage ensures that all useful code has been touched by tests * Tested on both Mac and Windows systems ------------ Requirements ------------ EMGM has the following requirements: * GHC 6.8.1 - It has been tested with versions 6.8.3 and 6.10.1 * Cabal library 1.2.1 - It has been tested with versions 1.2.4.0 and 1.6.0.1. ----------------- Download & Source ----------------- Use caball-install: cabal install emgm Get the package: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/emgm Check out the current source with Subversion: svn checkout https://svn.cs.uu.nl:12443/repos/dgp-haskell/EMGM/trunk Or view it online: https://svn.cs.uu.nl:12443/viewvc/dgp-haskell/EMGM/trunk/ -------- Examples -------- Check out the examples: https://svn.cs.uu.nl:12443/viewvc/dgp-haskell/EMGM/trunk/examples/ -------------- Bugs & Support -------------- Report issues or request features: http://code.google.com/p/emgm/issues/list Discuss EMGM with the authors, maintainers, and other interested persons: http://www.haskell.org/mailman/listinfo/generics ------- Credits ------- The research for EMGM originated with Ralf Hinze. It was extended with work by Bruno Oliveira and Andres L?h. More details of the library functionality were explored by Alexey Rodriguez. We are very grateful to all of these people for the foundation on which this library was built. The current authors and maintainers of EMGM are: * Sean Leather * Jos? Pedro Magalh?es * Alexey Rodriguez * Andres L?h -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20090130/430e6526/attachment-0001.htm From jgoerzen at complete.org Fri Jan 30 16:28:02 2009 From: jgoerzen at complete.org (John Goerzen) Date: Fri Jan 30 16:18:46 2009 Subject: [Haskell] ANN: HDBC v2.0 now available Message-ID: <20090130212802.GA30247@complete.org> Hi everyone, I'm pleased to announce that HDBC v2.0 is now available. Simultaneously, HDBC-sqlite3, HDBC-postgresql, and HDBC-odbc v2.0 have also been uploaded. All may be found from Hackage, or at software.complete.org. A guide to new features and migration can be found at: http://software.complete.org/software/wiki/hdbc/NewIn20 A partial summary of it follows: New Features: * Pervasive Unicode support now part of the HDBC API and implemented by all backend drivers. Based on utf8-string and conversions between UTF-8 ByteStrings and Haskell Strings. * Full support for GHC 6.10 is new. Full support for GHC 6.8 is maintained. * Native support for the new exception handling in GHC 6.10, with CPP conditional compilation to continue supporting the old-style exceptions for users of GHC 6.8 or Hugs. * HDBC now has direct support for marshalling virtually all of the Data.Time.* types to and from SQL database date/time types. toSql and fromSql/safeFromSql now support conversions between Data.Time.* types and SqlValue. Conversions between System.Time.* types were present from the beginning and will remain. Automatic conversions are, of course, contingent on support in database engines and HDBC database backend drivers and may not be possible with all databases. * Major expansion of SqlValue to be able to carry date/time data to/from databases in terms of Data.Time.* types. + The old SqlTimeDiff and SqlEpochTime types continue to be present, but are deprecated and will be removed in a future. toSql no longer converts anything to them. The System.Time.* types are converted to the new Data.Time-based SqlValues. It should be exceptionally rare that any user code would use these types directly, but they are being retained in this version out of an abundance of caution. * Replace fromSql with safeFromSql, which returns Left on impossible conversions instead of raising an exception. + Wrote a new fromSql that behaves just like the old one, but is implemented in terms of safeFromSql. It converts the safeFromSql errors to exceptions. + The new structure made it possible to greatly enhance many error messages throughout the conversion process instances. + Removed SqlType typeclass. Re-implemented SqlValue conversions in terms of the generic infrastructure in the convertible package. Simplified code significantly due to this. * Lots of additional docs. * New skeleton test suite for HDBC itself (to be expanded upon later). Richer Date and Time Support HDBC 1.x had only two ways of getting dates and times between Haskell and a database: an epoch (an Integer representing the number of seconds since midnight Jan 1 1970 UTC) and an Integer representing a TimeDiff (a count of elapsed time). While this approach could represent a precise instant in time, it was not always the most helpful. Most notably, you might sometimes want to load date information without time, time without date, or record what timezone the time was measured within. HDBC can now convert all of these things with much greater precision. Thanks to Phil Wise for adding the first Unicode support (to HDBC-postgresql originally) and to Alson Kemp for adding the first advanced date/time marshalling support (also to HDBC-postgresql originally). The experience of adding these features to a single backend driver first made clear a good way to add them to HDBC API as a whole. -- John From byorgey at seas.upenn.edu Sat Jan 31 10:04:00 2009 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Sat Jan 31 09:54:34 2009 Subject: [Haskell] Haskell Weekly News: Issue 103 - January 31, 2009 Message-ID: <20090131150400.GA16953@seas.upenn.edu> --------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20090131 Issue 103 - January 31, 2009 --------------------------------------------------------------------------- Welcome to issue 103 of HWN, a newsletter covering developments in the [1]Haskell community. Announcements HDBC v2.0 now available. John Goerzen [2]announced that [3]HDBC v2.0 is now available. Simultaneously, [4]HDBC-sqlite3, [5]HDBC-postgresql, and [6]HDBC-odbc v2.0 have also been uploaded to Hackage. A guide to new features and migration can be [7]found here. Extensible and Modular Generics for the Masses: emgm-0.2. Sean Leather [8]announced the second major release of [9]Extensible and Modular Generics for the Masses (EMGM), a library for generic programming in Haskell using type classes and a sum-of-products view. Improvements over emgm-0.1 include type representation derivation using Template Haskell, documentation improvements, a bimap function, and more. incremental-sat-solver. Sebastian Fischer [10]announced the [11]incremental-sat-solver library, which provides an implementation of the [12]Davis-Putnam-Logemann-Loveland algorithm for the Boolean satisfiability problem. It not only allows solving Boolean formulas in one go, but also adding constraints and query bindings of variables incrementally. data-spacepart - space partitioning data structure[s] (initial release). Corey O'Connor [13]announced the [14]data-spacepart package, the goal of which is to be a collection of space partitioning data structures. Currently, there is only a simple quadtree implementation. Wired 0.2. Emil Axelsson [15]announced a new release of [16]Wired. The most important news in this release is that it now contains a 45nm cell library, which means that you can use Wired to create and analyze modern VLSI designs today! CFP Haskell Symposium 2009. Stephanie Weirich [17]announced a call for papers for the [18]2009 Haskell Symposium in Edinburgh, Scotland. The deadline for submissions is May 8. testpack (first release). John Goerzen [19]announced the release of [20]testpack, a collection of a few utilities for tests: some tools to convert QuickCheck properties into HUnit test cases, and various shortcuts and tools to increase verbosity while running tests in both QuickCheck and HUnit. convertible (first release). John Goerzen [21]announced a new package, [22]convertible. At its heart, it's a very simple typeclass that's designed to enable a reasonable default conversion between two different types without having to remember a bunch of functions. The return type from this conversion is "Either ConvertError a", and conversions are expected to do sanity checking (such as bounds checking when converting to types like Int), so as to produce neither garbage nor exceptions as part of the conversion process. The package also includes instances of the Convertible typeclass for common type conversions. working with numeric types as well as dates and times. Notably, it has code to convert between System.Time types and their Data.Time siblings, and vice versa, a capability I found annoyingly lacking in the standard library. Progress with IDE. Juergen Nicklisch-Franken [23]announced that the [24]Leksah 0.4.0 pre-release is now available. Current features include a Haskell customized editor with candy, project management support based on Cabal, a visual editor for Cabal files, navigation aids, a module browser, session support, and more. Hayoo! beta 0.3. Timo B. [25]announced the next beta version 0.3 of [26]Hayoo!, the Haskell API search engine with find-as-you-type and suggestions. Hayoo! now works even if your browser does not support JavaScript. DecisionTree 0.0. Adrian Neumann [27]announced the [28]DecisionTree package, which provides an implementation of the ID3 algorithm and can be used to classify data with discrete valued attributes. orchid-0.0.7. Sebastiaan Visser [29]announced a new release of [30]Orchid, just another Haskell Wiki. This release features a number of improvements, including a [31]filestore backend, searching, deleting and renaming support, and more. Check out the [32]demo. gitit 0.5. John MacFarlane [33]announced the latest release of [34]Gitit, the multitalented distributed wiki written in Haskell. This release uses the [35]filestore library and hence also supports a darcs backend, and also features optimizations, better search, better diffs, and more. You can check out a [36]running example. filestore 0.1. Gwern Branwen [37]announced [38]filestore 0.1, which provides a uniform, abstract, generic interface for storing versioned files on disk. It allows calling programs to use generic commands to store strings or binary data and perform various queries, such as 'what files are in this repository?' or 'what were the contents of this file at revision XXXXXXX?' or 'give me a diff of this file between revision XXXXXXX and revision YYYYYYY.' Because the interface is abstract, the calling program is insulated from the messy details of the backend (which might be a VCS or a database). Darcs and Git are fully supported. There are plans for a SQLite backend. Scurry :: A cross platform (if you put your mind to it) P2P VPN. John Van Enk [39]announced the release of [40]Scurry, a P2P VPN application written in Haskell (and a little C). Discussion Why binding to existing widget toolkits doesn't make any sense. Achim Schneider began an interesting [41]discussion on the proper approach to GUI toolkits in Haskell. Laws and partial values. Henning Thielemann began [42]a long thread on the semantics of laws (such as the monoid laws). Blog noise [43]Haskell news from the [44]blogosphere. * Sebastian Fischer: [45]Using SmallCheck to Shatter an Audacious Claim. * Xmonad: [46]Quad head xmonad. * Darcs: [47]darcs weekly news #15. * Osfameron: [48]More longest paths, and sick folds.. * Eric Kow (kowey): [49]haskell-ji. * Jeff Heard: [50]Control.Monad.IfElse. * Conal Elliott: [51]What is automatic differentiation, and why does it work?. * Luke Palmer: [52]Fun with PiSigma. * Neil Mitchell: [53]Small scripts with Haskell. * LHC Team: [54]Release notes.. * LHC Team: [55]Thoughts on a new code generator. * Xmonad: [56]contribs review: ThreeColumnsMiddle, CenteredMaster, Mosaic. * Osfameron: [57]There's the nub (snippet in Perl and Haskell). * Malcolm Wallace: [58]codec implementations. * Sebastian Fischer: [59]Fun with Infinite Global Constants. Just-in-time, memoized binomial coefficients. * Chris Done: [60]Some libgd changes. * Luke Palmer: [61]A world without orphans. Luke muses on the benefits to be gained by outlawing orphan instances. * Creighton Hogg: [62]Fear of releasing code. * LHC Team: [63]Thoughts on a new code generator. * Don Stewart (dons): [64]What is Haskell good for?. Lots of things, if this tag cloud has anything to say about it. * Arch Haskell News: [65]Haskell wiki stack in Arch. * Conal Elliott: [66]Comparing formulations of higher-dimensional, higher-order derivatives. * Conal Elliott: [67]Fostering creativity by relinquishing the obvious. * Arch Haskell News: [68]Arch Haskell News: Jan 11 2009. * Dan Piponi (sigfpe): [69]Fast incremental regular expression matching with monoids. A very cool article showing how to use fingertrees storing memoized automaton transition functions to do fast incremental regular expression matching (or, in general, fast incremental lexing). Quotes of the Week * lilac: is happy with his infinite type. it's ducks all the way across and down. * Gracenotes: You are likely to be eaten by a poset * RossMellgren: Apparently 64-bit GHC is sufficiently advanced to be indistinguishable from magic. * cjb: It's all fun and games until somebody loses an IOVar. * sigfpe: If I took some Ritalin, maybe I could write an entire book on Haskell and algebra. * ddarius: Nothing is evaluated until it is. About the Haskell Weekly News New editions are posted to [70]the Haskell mailing list as well as to [71]the Haskell Sequence and [72]Planet Haskell. [73]RSS is also available, and headlines appear on [74]haskell.org. To help create new editions of this newsletter, please see the information on [75]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [76]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51664 3. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HDBC 4. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HDBC%2Dsqlite3 5. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HDBC%2Dpostgresql 6. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HDBC%2Dodbc 7. http://software.complete.org/software/wiki/hdbc/NewIn20 8. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51646 9. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/emgm 10. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51564 11. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/incremental-sat-solver 12. http://en.wikipedia.org/wiki/DPLL_algorithm 13. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51505 14. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/data-spacepart 15. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51484 16. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Wired 17. http://article.gmane.org/gmane.comp.lang.haskell.general/16818 18. http://haskell.org/haskell-symposium/2009/ 19. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51482 20. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/testpack 21. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51481 22. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/convertible 23. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51475 24. http://www.leksah.org/ 25. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51450 26. http://holumbus.fh-wedel.de/hayoo 27. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51407 28. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/DecisionTree 29. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51395 30. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/orchid 31. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/filestore 32. http://funct.org/wiki/ 33. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51392 34. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/gitit 35. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/filestore 36. http://gitit.johnmacfarlane.net/ 37. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51388 38. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/filestore 39. http://article.gmane.org/gmane.comp.lang.haskell.cafe/51364 40. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Scurry 41. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/51478 42. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/51299 43. http://planet.haskell.org/ 44. http://haskell.org/haskellwiki/Blog_articles 45. http://www-ps.informatik.uni-kiel.de/~sebf/haskell/smallcheck-experience.html 46. http://xmonad.wordpress.com/2009/01/31/quad-head-xmonad/ 47. http://blog.darcs.net/2009/01/darcs-weekly-news-15.html 48. http://greenokapi.net/blog/2009/01/31/more-longest-paths-and-sick-folds/ 49. http://koweycode.blogspot.com/2009/01/haskell-ji.html 50. http://vis.renci.org/jeff/?p=96 51. http://conal.net/blog/posts/what-is-automatic-differentiation-and-why-does-it-work/ 52. http://lukepalmer.wordpress.com/2009/01/28/fun-wth/ 53. http://neilmitchell.blogspot.com/2009/01/small-scripts-with-haskell.html 54. http://lhc-compiler.blogspot.com/2009/01/release-notes.html 55. http://lhc-compiler.blogspot.com/2009/01/thoughts-on-new-code-generator.html 56. http://xmonad.wordpress.com/2009/01/27/contribs-review-threecolumnsmiddle-centeredmaster-mosaic/ 57. http://greenokapi.net/blog/2009/01/27/theres-the-nub-snippet-in-perl-and-haskell/ 58. http://feeds.feedburner.com/~r/malcolm/~3/523603226/codec-implementations.html 59. http://www-ps.informatik.uni-kiel.de/~sebf/haskell/infinite-constants.html 60. http://chrisdone.com/blog/2009/01/26/Some-libgd-changes 61. http://lukepalmer.wordpress.com/2009/01/25/a-world-without-orphans/ 62. http://abstractabsurd.blogspot.com/2009/01/fear-of-releasing-code.html 63. http://lhc-compiler.blogspot.com/2009/01/thoughts-on-new-code-generator.html 64. http://donsbot.wordpress.com/2009/01/24/what-is-haskell-good-for/ 65. http://archhaskell.wordpress.com/2009/01/25/haskell-wiki-stack-in-arch/ 66. http://conal.net/blog/posts/comparing-formulations-of-higher-dimensional-higher-order-derivatives/ 67. http://conal.net/blog/posts/fostering-creativity-by-relinquishing-the-obvious/ 68. http://archhaskell.wordpress.com/2009/01/11/arch-haskell-news-jan-11-2009/ 69. http://sigfpe.blogspot.com/2009/01/fast-incremental-regular-expression.html 70. http://www.haskell.org/mailman/listinfo/haskell 71. http://sequence.complete.org/ 72. http://planet.haskell.org/ 73. http://sequence.complete.org/node/feed 74. http://haskell.org/ 75. http://haskell.org/haskellwiki/HWN 76. http://code.haskell.org/~byorgey/code/hwn/ From yminsky at janestcapital.com Sat Jan 31 14:57:10 2009 From: yminsky at janestcapital.com (yminsky) Date: Sat Jan 31 14:47:22 2009 Subject: [Haskell] Jane Street Summer Project 2009 Message-ID: I'm pleased to announce the Jane Street Summer Project for 2009. The goal of the JSSP is to make functional programming languages into better practical tools for programming in the real world. To do that, we will fund students over the summer to work on open-source projects which aim at improving the practical utility of their favorite functional language. The JSSP is a follow-on to last year's OCaml Summer Project. A key difference this year is that we are opening up the project to proposals in languages other than OCaml (although we expect to maintain a focus on OCaml projects.) There are also some changes to the funding structure that are particularly relevant for projects located in the US. If you want to find out more, you can look at the JSSP blog: http://janestreetsummer.com And at the project FAQ: http://ocaml.janestreet.com/?q=node/57 We're looking forward to a great and productive summer, and we hope some of you come along for the ride! Thanks, Yaron Minsky From tom.davie at gmail.com Sat Jan 31 15:34:34 2009 From: tom.davie at gmail.com (Thomas Davie) Date: Sat Jan 31 15:24:52 2009 Subject: [Haskell] HOC Message-ID: <0B7A0A1B-2571-4472-854C-C6113071E6FC@gmail.com> I noticed recently that HOC has moved over to google code, and seems a little more active than it was before. Is there a mailing list where I can talk to other users and get myself kick started, or is it a case of just using the standard Haskell ones? Bob From byorgey at seas.upenn.edu Sat Jan 31 17:37:34 2009 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Sat Jan 31 17:51:58 2009 Subject: [Haskell] ANN: diagrams 0.2 Message-ID: <20090131223734.GA28526@seas.upenn.edu> I am very pleased to announce the 0.2 release of the diagrams package, an embedded domain-specific language for creating simple graphics in a compositional style. This release includes a number of significant new features, including: * support for arbitrary straight and curved paths * more shape primitives, including polygons and rounded rectangles * support for rendering text * PNG, PDF, PS, and SVG output * built-in color support replaced with external dependence on the feature-rich colour library and many more! More information, examples, and installation instructions can be found at http://code.haskell.org/diagrams. More features are planned for future releases, so contributions and suggestions are welcome. (Please note: since diagrams depends on the Cairo library, which has unfortunately not been Cabalized, you cannot install the diagrams library with cabal-install, unless you already have the cairo package installed. See the above website for instructions.) A special thanks to Dougal Stanton for his contributions to the library and help in preparing this release. -Brent