From kr.angelov at gmail.com Wed Dec 3 08:45:01 2008 From: kr.angelov at gmail.com (Krasimir Angelov) Date: Wed Dec 3 08:38:24 2008 Subject: [Haskell] Perhaps a bug in GHC 6.10 Message-ID: Hi, One of my students wrote code like this: prop_blank s (i,j) li = if i==li then do if something then True else False else prop_blank (...) (i,j) (li+1) This code is not accepted from GHC 6.8.3 because Bool is not a monad. In particular the error message is: Sudoku.hs:269:5: Couldn't match expected type `Bool' against inferred type `a b' In the expression: ...... Surprisingly the same code is accepted from GHC 6.10. This looks like a bug for me. The easiest way to reproduce this is to try to evaluate: > do True in GHCi with GHC 6.8.3 and with GHC 6.10 Is there any reason to accept this code? Regards, Krasimir From walkiner at eecs.oregonstate.edu Wed Dec 3 09:19:45 2008 From: walkiner at eecs.oregonstate.edu (Eric Walkingshaw) Date: Wed Dec 3 09:13:06 2008 Subject: [Haskell] Perhaps a bug in GHC 6.10 In-Reply-To: References: Message-ID: It looks like the 6.10 behavior is actually the correct one: http://www.mail-archive.com/glasgow-haskell-bugs@haskell.org/msg13632.html Also, see the do-notation translation section in the Haskell 98 Report: http://www.haskell.org/onlinereport/exps.html#sect3.14 -Eric On Wed, Dec 3, 2008 at 5:45 AM, Krasimir Angelov wrote: > Hi, > > One of my students wrote code like this: > > > prop_blank s (i,j) li = > if i==li > then > do if something then True else False > else > prop_blank (...) (i,j) (li+1) > > > This code is not accepted from GHC 6.8.3 because Bool is not a monad. > In particular the error message is: > > Sudoku.hs:269:5: > Couldn't match expected type `Bool' against inferred type `a b' > In the expression: > ...... > > Surprisingly the same code is accepted from GHC 6.10. This looks like > a bug for me. The easiest way to reproduce this is to try to evaluate: > >> do True > > in GHCi with GHC 6.8.3 and with GHC 6.10 > > Is there any reason to accept this code? > > > Regards, > Krasimir > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > From allbery at ece.cmu.edu Wed Dec 3 10:41:44 2008 From: allbery at ece.cmu.edu (Brandon S. Allbery KF8NH) Date: Wed Dec 3 10:35:08 2008 Subject: [Haskell] Perhaps a bug in GHC 6.10 In-Reply-To: References: Message-ID: On 2008 Dec 3, at 8:45, Krasimir Angelov wrote: > Sudoku.hs:269:5: > Couldn't match expected type `Bool' against inferred type `a b' > In the expression: > ...... > > Surprisingly the same code is accepted from GHC 6.10. This looks like > a bug for me. The easiest way to reproduce this is to try to evaluate: 6.8.3 was changed on the theory that do "ought to" require a monad, contra Haskell98. I suspect Haskell98 compatibility won. -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH From niklas.broberg at gmail.com Thu Dec 4 13:04:25 2008 From: niklas.broberg at gmail.com (Niklas Broberg) Date: Thu Dec 4 12:57:42 2008 Subject: [Haskell] ANNOUNCE: haskell-src-exts 0.4.4 Message-ID: Fellow Haskelleers, it is my pleasure to announce the new release of the haskell-src-exts package, version 0.4.4: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/haskell-src-exts-0.4.4 darcs get http://code.haskell.org/HSP/haskell-src-exts The new feature in this release is support for pragmas. haskell-src-exts-0.4.4 supports all pragmas supported by GHC, with the exception of option-level pragmas (LANGUAGE, OPTIONS_GHC etc) that appear before the module header. The reason these are not yet supported is simply time, there's no real difficulty involved in supporting them too and I will surely get there eventually. 0.4.4 is backwards incompatible with 0.4.3 for two constructors: * The Module constructor (:: Module) now has an extra argument of type 'Maybe WarningText', used for deprecated modules. * The ImportDecl constructor (:: ImportDecl) now has an extra argument of type Bool, stating whether the SOURCE pragma has been used for the import. The full list of pragmas supported by 0.4.4 is: SOURCE, RULES, DEPRECATED, WARNING, INLINE, NOINLINE, SPECIALISE, CORE, SCC, GENERATED and UNPACK. Cheers and Happy Haskelling, /Niklas From doaitse at swierstra.net Fri Dec 5 11:43:47 2008 From: doaitse at swierstra.net (S. Doaitse Swierstra) Date: Fri Dec 5 11:37:02 2008 Subject: [Haskell] ANNOUNCE: ChristmasTree 0.1 In-Reply-To: <1213789520.15010.837.camel@localhost> References: <1213789520.15010.837.camel@localhost> Message-ID: <7A61F72B-55DD-4390-AA51-1A6B6FBF2C31@swierstra.net> We are pleased to announce the availability of the package "ChristmasTree", which contains the code associated with our paper at the last Haskell symposium: @inproceedings{1411296, author = {Marcos Viera and S. Doaitse Swierstra and Eelco Lempsink}, title = {Haskell, do you read me?: constructing and composing efficient top-down parsers at runtime}, booktitle = {Haskell '08: Proceedings of the first ACM SIGPLAN symposium on Haskell}, year = {2008}, isbn = {978-1-60558-064-7}, pages = {63--74}, location = {Victoria, BC, Canada}, doi = {http://doi.acm.org/10.1145/1411286.1411296}, publisher = {ACM}, address = {New York, NY, USA}, } The name of the package stands for: "Changing Haskell's Read Implementation Such That by Manipulating Abstract Syntax Trees it Reads Expressions Efficiently" which, given the time of year, seems appropriate. Feel free to download and unpack your present at what for the Dutch is called "Sinterklaasavond" (http://en.wikipedia.org/wiki/Sinterklaas), Arthur Baars Marcos Viera Eelco Lempsink Doaitse Swierstra PS: the package uses our library supporting transformation of typed abstract syntax, which we placed in a separate package TTTAS From doaitse at swierstra.net Fri Dec 5 12:10:19 2008 From: doaitse at swierstra.net (S. Doaitse Swierstra) Date: Fri Dec 5 12:03:35 2008 Subject: [Haskell] Announce: TTTAS Message-ID: We are pleased to announce the availability of the package "TTTAS", which contains the code associated with our paper at the coming TLDI workshop: \@inproceedings{ BSV09, author = {Arthur Baars and S. Doaitse Swierstra and Marcos Viera}, title = {Typed Transformations of Typed Abstract Syntax}, booktitle = {TLDI '09: fourth ACM SIGPLAN Workshop on Types in Language Design and Implementation}, year = {2009}, location = {Savannah, Georgia, USA}, publisher = {ACM}, address = {New York, NY, USA}, } For more information see: http://www.cs.uu.nl/wiki/bin/view/Center/TTTAS Arthur Baars Marcos Viera Doaitse Swierstra From hpacheco at gmail.com Sat Dec 6 00:24:18 2008 From: hpacheco at gmail.com (Hugo Pacheco) Date: Sat Dec 6 00:17:34 2008 Subject: [Haskell] ANNOUNCE: GHood 0.0.2 Message-ID: <7b92c2840812052124i433af510se17bfced33309f20@mail.gmail.com> Dear Haskelleers, I am pleased to annouce the release of the fairly old GHood graphical viewer as a cabal package: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/GHood-0.0.2 GHood is a graphical back-end for the lightweight Hood Haskell debugger, and uses a Java interface to draw the intermediate types of haskell functions. GHood has had many contributors throughout the years: Hugo Pacheco, packaging Alcino Cunha, ObserveM monad Claus Reinke, the creator or GHood Andy Gill, the creator of Hood Please forward any feedback to myself. Cheers, hugo -- www.di.uminho.pt/~hpacheco -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20081206/3ffdd70c/attachment-0001.htm From hpacheco at gmail.com Sat Dec 6 13:55:06 2008 From: hpacheco at gmail.com (Hugo Pacheco) Date: Sat Dec 6 13:48:18 2008 Subject: [Haskell] ANNOUNCE: DrHylo 0.0.1 Message-ID: <7b92c2840812061055m2067869dia969935d1c2633f5@mail.gmail.com> Dear Haskelleers, Alcino Cunha and me are pleased to announce the release of the DrHylo tool in Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/DrHylo DrHylo is a tool for deriving hylomorphisms from a restricted Haskell syntax. It is based on the algorithm first presented in the paper Deriving Structural Hylomorphisms From Recursive Definitions at ICFP'96 by Hu, Iwasaki, and Takeichi. The generated code can be run with Pointless Haskell (< http://hackage.haskell.org/cgi-bin/hackage-scripts/package/pointless-haskell>), allowing the visualization of the recursion trees of Haskell functions. For more information, jsut follow: http://haskell.di.uminho.pt/wiki/DrHylo Any feedback is welcome. Cheers, hugo -- www.di.uminho.pt/~hpacheco -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20081206/954137d2/attachment.htm From byorgey at seas.upenn.edu Sat Dec 6 16:27:18 2008 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Sat Dec 6 16:20:32 2008 Subject: [Haskell] Haskell Weekly News: Issue 96 - December 6, 2008 Message-ID: <20081206212718.GA30778@seas.upenn.edu> --------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20081206 Issue 96 - December 06, 2008 --------------------------------------------------------------------------- Welcome to issue 96 of HWN, a newsletter covering developments in the [1]Haskell community. Announcements Haskell haikus. Gwern Branwen [2]announced that he has collected all known haikus about Haskell and put them on a [3]wiki page. Add more! Platforms that GHC supports. Simon Peyton-Jones [4]linked to a [5]new page clearly articulating what platforms GHC supports, and what platforms its maintainers would like it to support. If you're interested and willing to help sponsor a "Tier 2" platform, let them know! Using Data Parallel Haskell. Manuel Chakravarty [6]announced a new [7]wiki page with documentation for Data Parallel Haskell. DrHylo 0.0.1. Hugo Pacheco [8]announced the [9]release of [10]DrHylo, a tool for deriving hylomorphisms from a restricted Haskell syntax. It is based on the algorithm first presented in the paper Deriving Structural Hylomorphisms From Recursive Definitions at ICFP'96 by Hu, Iwasaki, and Takeichi. The generated code can be run with [11]Pointless Haskell, allowing the visualization of the recursion trees of Haskell functions. pointless-haskell 0.0.1. Hugo Pacheco [12]announced the [13]release of [14]Pointless Haskell, a library for point-free programming with recursion patterns defined as hylomorphisms, inspired in ideas from the PolyP library. The re-implementation of the library using type functions (in opposition to classes with functional dependencies) enables a type-level view of data types as the fixed points of functors and provides a better experience to the users in terms of code sanity. The library also features the visualization of the intermediate data structure of hylomorphisms with GHood. Projects that depend on the vty package?. Corey O'Connor [15]asked whether there are any other projects that depend on the [16]vty package. If so, let him know! The package also has a new [17]trac and wiki. haskell-src-exts 0.4.4. Niklas Broberg [18]announced the release of [19]haskell-src-exts 0.4.4, which adds support for pragmas. ChristmasTree 0.1. S. Doaitse Swierstra [20]announced the release of the [21]ChristmasTree package, which stands for "Changing Haskell's Read Implementation Such That by Manipulating Abstract Syntax Trees it Reads Expressions Efficiently". TTTAS. S. Doaitse Swierstra [22]announced the release of [23]TTTAS, a library for typed transformations of typed abstract syntax. GHood. Hugo Pacheco [24]announced that GHood, a graphical backend for the lightweight Hood Haskell debugger, has now been [25]released as a Cabal package. Discussion Animated line art. Andrew Coppin [26]asked for ideas on writing Haskell to generate some animations. Jobs Scala job in Boston writing quantitative finance software. Paul Chiusano [27]announced that [28]ClariFI is looking to hire developers with a strong background in functional programming to do a mixture of Scala and Java programming. ClariFI is a small company (about 15 developers) that specializes in software for quantitative investment management. This position is for the Boston office. If you're interested, send him an email. Blog noise [29]Haskell news from the [30]blogosphere. * Bryan O'Sullivan: [31]Functional programmers on Twitter. * Conal Elliott: [32]Sequences, segments, and signals. * >>> Gianfranco Alongi: [33]QuickCheck(ing) the code i C. * Edward Kmett: [34]The Pointed-Set Comonad. * Twan van Laarhoven: [35]Knight in n, part 3: rings. * "The GHC Team": [36]Explicit Stack Traces. * Real-World Haskell: [37]The Real World Haskell Book Club. * Real-World Haskell: [38]Real World Haskell: Now in Brazil. * >>> Matt Hellige: [39]Pointless fun. * Chung-chieh Shan: [40]The pointed-set monad. * Holumbus: [41]Status Update. * Paul R Brown: [42].editrc Tidbit for ghci. * Roman Cheplyaka: [43]DPH docs and project status. * David Sankel: [44]Introducing Reactive: Behaviors. * Manuel M T Chakravarty: [45]How to use Data Parallel Haskell.. * Conal Elliott: [46]Prettier functions for wrapping and wrapping. * Twan van Laarhoven: [47]Knight in n, part 2: combinatorics. * Yi: [48]Prototypes: Encoding OO-style inheritance in Haskell. * "Osfameron": [49]Functional Pe(a)rls v2 (now with Monads!) at the London Perl Workshop 2008. * Conal Elliott: [50]Sequences, streams, and segments. * Conal Elliott: [51]Early inspirations and new directions in functional reactive programming. * Clemens Fruhwirth: [52]XMonad GridSelect. About the Haskell Weekly News New editions are posted to [53]the Haskell mailing list as well as to [54]the Haskell Sequence and [55]Planet Haskell. [56]RSS is also available, and headlines appear on [57]haskell.org. To help create new editions of this newsletter, please see the information on [58]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [59]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://www.haskell.org//pipermail/haskell-cafe/2008-December/051529.html 3. http://haskell.org/haskellwiki/Haiku 4. http://article.gmane.org/gmane.comp.lang.haskell.glasgow.user/15958 5. http://hackage.haskell.org/trac/ghc/wiki/Platforms 6. http://www.haskell.org//pipermail/glasgow-haskell-users/2008-December/016271.html 7. http://haskell.org/haskellwiki/GHC/Data_Parallel_Haskell 8. http://article.gmane.org/gmane.comp.lang.haskell.general/16668 9. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/DrHylo 10. http://haskell.di.uminho.pt/wiki/DrHylo 11. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/pointless-haskell 12. http://article.gmane.org/gmane.comp.lang.haskell.cafe/48598 13. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/pointless-haskell 14. http://haskell.di.uminho.pt/wiki/Pointless+Haskell 15. http://article.gmane.org/gmane.comp.lang.haskell.cafe/48471 16. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/vty 17. http://trac.haskell.org/vty/ 18. http://www.haskell.org//pipermail/haskell-cafe/2008-December/051444.html 19. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/haskell-src-exts-0.4.4 20. http://www.haskell.org//pipermail/haskell/2008-December/020847.html 21. http://en.wikipedia.org/wiki/Sinterklaas 22. http://www.haskell.org//pipermail/haskell/2008-December/020848.html 23. http://www.cs.uu.nl/wiki/bin/view/Center/TTTAS 24. http://www.haskell.org//pipermail/haskell/2008-December/020849.html 25. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/GHood-0.0.2 26. http://www.haskell.org//pipermail/haskell-cafe/2008-December/051451.html 27. http://www.haskell.org//pipermail/haskell-cafe/2008-December/051295.html 28. http://clarifi.com/ 29. http://planet.haskell.org/ 30. http://haskell.org/haskellwiki/Blog_articles 31. http://www.serpentine.com/blog/2008/12/05/functional-programmers-on-twitter/ 32. http://conal.net/blog/posts/sequences-segments-and-signals/ 33. http://writert.blogspot.com/2008/12/quickchecking-code-i-c.html 34. http://comonad.com/reader/2008/the-pointed-set-comonad/ 35. http://twan.home.fmf.nl/blog/haskell/Knight3.details 36. http://ghcmutterings.wordpress.com/2008/12/04/explicit-stack-traces/ 37. http://www.realworldhaskell.org/blog/2008/12/03/the-real-world-haskell-book-club/ 38. http://www.realworldhaskell.org/blog/2008/12/03/real-world-haskell-now-in-brazil/ 39. http://matt.immute.net/content/pointless-fun 40. http://conway.rutgers.edu/~ccshan/wiki/blog/posts/Pointed_set/ 41. http://holumbus.fh-wedel.de/blog/?p=16 42. http://mult.ifario.us/p/editrc-tidbit-for-ghci 43. http://physics-dph.blogspot.com/2008/12/dph-docs-and-project-status.html 44. http://netsuperbrain.com/blog/posts/introducing-reactive-behaviors/ 45. http://justtesting.org/post/62610924 46. http://conal.net/blog/posts/prettier-functions-for-wrapping-and-wrapping/ 47. http://twan.home.fmf.nl/blog/haskell/Knight2.details 48. http://yi-editor.blogspot.com/2008/12/prototypes-encoding-oo-style.html 49. http://greenokapi.net/blog/2008/12/01/functional-pearls-v2-now-with-monads-at-the-london-perl-workshop-2008/ 50. http://conal.net/blog/posts/sequences-streams-and-segments/ 51. http://conal.net/blog/posts/early-inspirations-and-new-directions-in-functional-reactive-programming/ 52. http://blog.clemens.endorphin.org/2008/11/xmonad-gridselect.html 53. http://www.haskell.org/mailman/listinfo/haskell 54. http://sequence.complete.org/ 55. http://planet.haskell.org/ 56. http://sequence.complete.org/node/feed 57. http://haskell.org/ 58. http://haskell.org/haskellwiki/HWN 59. http://code.haskell.org/~byorgey/code/hwn/ From doaitse at swierstra.net Sun Dec 7 16:05:30 2008 From: doaitse at swierstra.net (S. Doaitse Swierstra) Date: Sun Dec 7 15:58:40 2008 Subject: [Haskell] [Announce] TTTAS (with excuse for second attempt to post) Message-ID: <5AF74C18-ED38-4C1F-A9FC-512AD7AEEE9A@swierstra.net> We are pleased to announce the availability of the package "TTTAS", which contains the code associated with our paper at the coming TLDI workshop: \@inproceedings{ BSV09, author = {Arthur Baars and S. Doaitse Swierstra and Marcos Viera}, title = {Typed Transformations of Typed Abstract Syntax}, booktitle = {TLDI '09: fourth ACM SIGPLAN Workshop on Types in Language Design and Implementation}, year = {2009}, location = {Savannah, Georgia, USA}, publisher = {ACM}, address = {New York, NY, USA}, } For more information see: http://www.cs.uu.nl/wiki/bin/view/Center/TTTAS Arthur Baars Marcos Viera Doaitse Swierstra -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20081207/23ab5283/attachment.htm From doaitse at swierstra.net Sun Dec 7 16:07:22 2008 From: doaitse at swierstra.net (S.Doaitse Swierstra) Date: Sun Dec 7 16:01:17 2008 Subject: [Haskell] ANNOUNCE: ChristmasTree 0.1 (excuses for second attempt) In-Reply-To: <49399A47.1020103@van.steenbergen.nl> References: <1213789520.15010.837.camel@localhost> <7A61F72B-55DD-4390-AA51-1A6B6FBF2C31@swierstra.net> <49399A47.1020103@van.steenbergen.nl> Message-ID: <1B6E1D99-7B9E-4493-88B2-0EA4A54A5906@swierstra.net> We are pleased to announce the availability of the package "ChristmasTree", which contains the code associated with our paper at the last Haskell symposium: @inproceedings{1411296, author = {Marcos Viera and S. Doaitse Swierstra and Eelco Lempsink}, title = {Haskell, do you read me?: constructing and composing efficient top-down parsers at runtime}, booktitle = {Haskell '08: Proceedings of the first ACM SIGPLAN symposium on Haskell}, year = {2008}, isbn = {978-1-60558-064-7}, pages = {63--74}, location = {Victoria, BC, Canada}, doi = {http://doi.acm.org/10.1145/1411286.1411296}, publisher = {ACM}, address = {New York, NY, USA}, } The name of the package stands for: "Changing Haskell's Read Implementation Such That by Manipulating Abstract Syntax Trees it Reads Expressions Efficiently" which, given the time of year, seems appropriate. Feel free to download and unpack this "present" at what for the Dutch is called "Sinterklaasavond" (http://en.wikipedia.org/wiki/Sinterklaas), Arthur Baars Marcos Viera Eelco Lempsink Doaitse Swierstra PS: the package uses our library supporting transformation of typed abstract syntax, which we placed in a separate package TTTAS From johan.nordlander at ltu.se Tue Dec 9 07:00:39 2008 From: johan.nordlander at ltu.se (Johan Nordlander) Date: Tue Dec 9 06:53:43 2008 Subject: [Haskell] ANNOUNCE: The Timber compiler 1.0.2 Message-ID: <702731AB-48DE-444B-8617-7A87A4CCF096@ltu.se> ----------------------------------- ANNOUNCE: The Timber compiler 1.0.2 ----------------------------------- We're pleased to announce the availablility of the first public release of the Timber compiler! Timber is a modern language for building event-driven systems, based around the notion of reactive objects. It is also a purely functional language derived from Haskell, although with a strict evaluation semantics. The Timber compiler currently runs on Linux and MacOS X platforms, but uses gcc as its back-end so it should be easily portable to most POSIX- like environments. For more info, language documentation, source code access and binary installers, see http://timber-lang.org/ Or simply grab the timberc package at http://hackage.haskell.org/. The Timber Team through Johan Nordlander From amal.j.ahmed at gmail.com Tue Dec 9 13:26:14 2008 From: amal.j.ahmed at gmail.com (Amal Ahmed) Date: Tue Dec 9 13:19:36 2008 Subject: [Haskell] TLDI 2009 Call for Participation Message-ID: <861481E0-960F-4A61-B720-FABE49B8B632@gmail.com> ********************************************************************* CALL FOR PARTICIPATION TLDI 2009 ACM SIGPLAN Workshop on Types in Language Design and Implementation 24 January 2009 Savannah, Georgia, USA To be held in conjunction with POPL 2009 http://ttic.uchicago.edu/~amal/tldi2009/ ********************************************************************* IMPORTANT DATES Hotel reservation deadline: December 18, 2008 Early registration deadline: December 19, 2008 VENUE TLDI'09 and all POPL'09 affiliated events will take place at the Hyatt Regency Savannah. SCOPE The role of types in all aspects of language design, compiler construction, and software development has expanded greatly in recent years. Type systems, type analyses, and formal deduction have led to new concepts in compilation techniques for modern programming languages, verification of safety and security properties of programs, program transformation and optimization, and many other areas. The TLDI Workshop series aims to bring together researchers in all these areas to share novel ideas and stimulate interaction and discussion on the ever expanding use of types. INVITED TALK Ulf Norell, Chalmers University of Technology, Sweden Title: Dependently Typed Programming in Agda PRELIMINARY PROGRAM A preliminary program can be found at the end of this email, or it can be found here: http://ttic.uchicago.edu/~amal/tldi2009/program.html GENERAL CHAIR Andrew Kennedy Microsoft Research, Cambridge PROGRAM CHAIR Amal Ahmed Toyota Technological Institute, Chicago PROGRAM COMMITTEE Amal Ahmed Toyota Technological Institute, Chicago (Chair) Juan Chen Microsoft Research Peter Dybjer Chalmers University of Technology Jeff Foster University of Maryland, College Park Neal Glew Intel Robert Harper Carnegie Mellon University Andrew Myers Cornell University Atsushi Ohori Tohoku University Matthew Parkinson University of Cambridge Didier Remy INRIA Paris-Rocquencourt Andreas Rossberg Max Planck Institute for Software Systems PRELIMINARY PROGRAM * SATURDAY, January 24, 2009 ** Opening remarks: 8:50-9:00 ** Invited talk 9:00-10:00 Ulf Norell, Chalmers University of Technology, Sweden Title: Dependently Typed Programming in Agda ---------------------- ** Session I 10:30-12:00 *** Compiling Functional Types to Relational Specifications for Low Level Imperative Code Nick Benton and Nicolas Tabareau *** Typed Transformations of Typed Abstract Syntax Arthur Baars, S. Doaitse Swierstra and Marcos Viera *** Secure Compilation of a Multi-Tier Web Language Ioannis Baltopoulos and Andrew Gordon ---------------------- ** Session II 1:30-3:00 *** A Generic Type-and-Effect System Daniel Marino and Todd Millstein *** Static Extraction of Sound Hierarchical Runtime Object Graphs Marwan Abi-Antoun and Jonathan Aldrich *** Opis: Reliable Distributed Systems in OCaml Pierre-Evariste Dagand, Dejan Kostic and Viktor Kuncak ---------------------- ** Session III 3:30-5:00 *** Type-theoretic semantics for transactional concurrency Aleksandar Nanevski, Paul Govereau and Greg Morrisett *** Relational Parametricity for References and Recursive Types Lars Birkedal, Kristian St?vring and Jacob Thamsborg *** Design Patterns in Separation Logic Neelakantan R. Krishnaswami, Jonathan Aldrich, Lars Birkedal, Kaspar Svendsen and Alexandre Buisse From genaim at clip.dia.fi.upm.es Wed Dec 10 05:35:00 2008 From: genaim at clip.dia.fi.upm.es (Samir Genaim) Date: Wed Dec 10 05:28:22 2008 Subject: [Haskell] BYTECODE09: Last Call for Papers Message-ID: ******************************************************** * Last Call for Papers * * * * Fourth Workshop on Bytecode Semantics, * * Verification, Analysis and Transformation * * * * York, UK, 29th March 2009, part of ETAPS 2009 * * * * Venue: The University of York * * * * http://www.clip.dia.fi.upm.es/Conferences/BYTECODE09 * * * ******************************************************** Important Dates =============== Paper Submission December 21, 2008 Notification January 25, 2009 Final Version February 8, 2009 Workshop March 29, 2009 Workshop Description ==================== Bytecode, such as produced by e.g. .Net and Java compilers, has become an important topic of interest, both for industry and academia. The industrial interest stems from the fact that bytecode is typically used for the Internet and mobile devices (smartcards, phones, etc.), where security is a major issue. Moreover, bytecode is device-independent and allows dynamic loading of classes, which provides an extra challenge for the application of formal methods. In addition, the lack of structure of the code and the pervasive presence of the operand stack also provide extra challenges for the analysis of bytecode. This workshop will focus on the latest developments in the semantics, verification, analysis, and transformation of bytecode. Both new theoretical results and tool demonstrations are welcome. Invited Speaker =============== TBA Submission ========== There are two paper categories, Regular and Tool demo papers. Paper should be written using the ENTCS style and submitted through the easy chair page "http://www.easychair.org/conferences/?conf=bytecode09". Please indicate in the submission page the category of your submission. Submissions will be evaluated by the Program Committee for inclusion in the ENTCS proceedings. Regular research papers should be at most 15 pages (including bibliography and excluding well-marked appendices not intended for publication). They must contain original contributions, be written in English and be unpublished and not submitted simultaneously for publication elsewhere. Tool demo papers must describe a completed, robust and well-documented tool -- highlighting the overall functionality of the tool, the interfaces of the tool, interesting examples and applications of the tool, an assessment of the tool's strengths and weaknesses, and a summary of documentation/support available with the tool. The body of the paper must be no longer than 6 pages in length (including bibliography), and it should give an overview of the tool, the methodology associated with its use, a summary of how the tool has been applied and to what effect, and it should indicate what supporting artifacts (user manual, example repository, downloads, etc) are available. This material will be included in the ENTCS proceedings if the paper is accepted. In addition, the paper should include an appendix (limited to six pages) that gives an outline of the proposed demo presentation (this material will NOT appear in the ENTCS proceedings). Program Committee ================= Wolfgang Ahrendt Chalmers University of Technology, SWE Elvira Albert (co-chair) Complutense University of Madrid, ESP June Andronick NICTA, AUS David Aspinall University of Edinburgh, UK Cristina Cifuentes Sun Microsystems, AUS Samir Genaim (co-chair) Technical University of Madrid, ESP Sara Kalvala The University of Warwick, UK Gerwin Klein The University of New South Wales, AUS Francesco Logozzo Microsoft Research, USA David Pichardie INRIA Rennes (IRISA), FRA Tamara Rezk INRIA-Microsoft, FRA Fausto Spoto University of Verona, ITA Eran Yahav IBM T.J. Watson Research Center, USA From chak at cse.unsw.edu.au Fri Dec 12 23:49:49 2008 From: chak at cse.unsw.edu.au (Manuel M T Chakravarty) Date: Fri Dec 12 23:42:43 2008 Subject: [Haskell] DAMP 2009: Call for Participation Message-ID: <17446DD8-28F9-4E57-ACB9-BF0476ABC3B0@cse.unsw.edu.au> C a l l f o r P a r t i c i p a t i o n DAMP 2009: Workshop on Declarative Aspects of Multicore Programming Savannah, Georgia, USA --- January 20, 2009 (co-located with POPL 2009) DAMP 2009 is the fourth in a series of one-day workshops seeking to explore ideas in programming language design that will greatly simplify programming for multicore architectures, and more generally for tightly coupled parallel architectures. DAMP 2009 is co-located with the ACM SIGPLAN - SIGACT Symposium on Principles of Programming Languages (POPL 2009). The advance program is available at http://www.cse.unsw.edu.au/~pls/damp09/programme.html Early registration deadline is 19 December 2008! From ashley at semantic.org Sat Dec 13 06:10:10 2008 From: ashley at semantic.org (Ashley Yakeley) Date: Sat Dec 13 06:03:12 2008 Subject: [Haskell] Spam on HaskellWiki Message-ID: This is beginning to annoy people. Actually, someone registered several thousand accounts (of the form XxxxxXxxxx), though almost all of them have not been used. The others have been used to add spam. I can block user accounts and IP addresses, and I can grant this privilege to others on whatever basis the Haskell community think appropriate. I have CheckUser installed (allows me to find the IP addresses of a given user, and find edits from a particular IP address), and this is also a grantable privilege. However, given that the spam is coming from quite a number of IP addresses, I suspect there is some kind of botnet involved. There is a tool called "rollback" that allows one-click revert of one or more sequential edits from the same user, which makes reverting spam a one-click-per-page operation. Again, this is a grantable privilege and in any case relatively harmless. However, it is only available with MediaWiki 1.9 and later, and HaskellWiki is running MediaWiki 1.5.4, so this means doing an upgrade. The current stable release is 1.13.2. -- Ashley Yakeley From hjgtuyl at chello.nl Sat Dec 13 07:10:19 2008 From: hjgtuyl at chello.nl (Henk-Jan van Tuyl) Date: Sat Dec 13 07:03:10 2008 Subject: [Haskell] Spam on HaskellWiki In-Reply-To: References: Message-ID: On Sat, 13 Dec 2008 12:10:10 +0100, Ashley Yakeley wrote: > This is beginning to annoy people. Actually, someone registered several > thousand accounts (of the form XxxxxXxxxx), though almost all of them > have not been used. The others have been used to add spam. > > I can block user accounts and IP addresses, and I can grant this > privilege to others on whatever basis the Haskell community think > appropriate. > > I have CheckUser installed (allows me to find the IP addresses of a > given user, and find edits from a particular IP address), and this is > also a grantable privilege. However, given that the spam is coming from > quite a number of IP addresses, I suspect there is some kind of botnet > involved. > > There is a tool called "rollback" that allows one-click revert of one or > more sequential edits from the same user, which makes reverting spam a > one-click-per-page operation. Again, this is a grantable privilege and > in any case relatively harmless. However, it is only available with > MediaWiki 1.9 and later, and HaskellWiki is running MediaWiki 1.5.4, so > this means doing an upgrade. The current stable release is 1.13.2. > I think it would be even better when the site is protected with captchas [1], like wipipedia is. http://captchas.net/ provides a free captcha service. It is too easy to create a new user account and to edit pages by means of a forum spambot [2]. -- Regards, Henk-Jan van Tuyl [1] http://en.wikipedia.org/wiki/Captcha [2] http://en.wikipedia.org/wiki/Spambot#Forum_spambots -- http://functor.bamikanarie.com http://Van.Tuyl.eu/ -- From bulat.ziganshin at gmail.com Sat Dec 13 07:42:35 2008 From: bulat.ziganshin at gmail.com (Bulat Ziganshin) Date: Sat Dec 13 07:35:46 2008 Subject: [Haskell] F# to ship as part of Visual Studio 2010 Message-ID: <183698280.20081213154235@gmail.com> Hello , http://blogs.msdn.com/dsyme/archive/2008/12/10/fsharp-to-ship-as-part-of-visual-studio-2010.aspx now we can say definitely that 201x decade will be years of FP replacing OOP in programmers' minds -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com From byorgey at seas.upenn.edu Sat Dec 13 12:55:43 2008 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Sat Dec 13 12:48:41 2008 Subject: [Haskell] Haskell Weekly News: Issue 97 - December 13, 2008 Message-ID: <20081213175543.GA17286@seas.upenn.edu> --------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20081213 Issue 97 - December 13, 2008 --------------------------------------------------------------------------- Welcome to issue 97 of HWN, a newsletter covering developments in the [1]Haskell community. Lots of neat blog posts and funny quotes this week. Don't forget to keep adding [2]haiku to the wiki, and don't miss Alex McLean (yaxu)'s [3]streaming livecoding performance tonight! Announcements Spam on HaskellWiki. Ashley Yakeley [4]asked what people would like to do about the increasing amounts of spam on the Haskell wiki, and offered some suggestions. The Timber compiler 1.0.2. Johan Nordlander [5]announced the first public release of the [6]Timber compiler. Timber is a modern language for building event-driven systems, based around the notion of reactive objects. It is also a purely functional language derived from Haskell, although with a strict evaluation semantics. To try it out, just grab the [7]timberc package on Hackage. Retrospective on 2008?. Don Stewart [8]proposed the idea of a 2008 retrospective. How would you choose the 10 best new libraries, applications, blog posts, etc. of 2008? a haskell_proposals subreddit. Jason Dusek [9]announced a [10]subreddit for Haskell library proposals. The idea is that Web 2.0 will help us to allocate our collective talents more efficiently when it comes to extensions (and perhaps clue us in when our pet project is something people really want). permutation-0.2. Patrick Perry [11]announced a [12]new version of the permutation library, which includes data types for storing permutations. It implements pure and impure types, the latter which can be modified in-place. The main utility of the library is converting between the linear representation of a permutation to a sequence of swaps. This allows, for instance, applying a permutation or its inverse to an array with O(1) memory use. Data.List.Split. Brent Yorgey [13]announced the creation of a wiki page for [14]Data.List.Split, a hypothetical module containing implementations of every conceivable way of splitting lists known to man, so we no longer have to (1) argue about the 'one true' interface for a 'split' function, or (2) be embarrassed when people ask why there isn't a split function in the standard libraries. Please add code or comments! At some point it will be uploaded as a new module to Hackage. Announcing Haskell protocol-buffers version 1.2.2. Chris Kuklewicz [15]announced new versions of [16]protocol-buffers, [17]protocol-buffers-descriptor, and [18]hprotoc. Discussion A curious monad. Andrew Coppin [19]exhibited an interesting Storage monad, which (it turns out) is similar to ST. An enlightening discussion if you want to understand how ST works and the motivation behind it. Origins of '$'. George Pollard [20]asked about the origins of the $ operator (low-precedence function application) in the standard libraries, leading to some interesting history and general discussion about notation. Blog noise [21]Haskell news from the [22]blogosphere. * Jamie Brandon: [23]Zombified GMap. Jamie is determined to get his SoC generalized map library released! * Philip Wadler: [24]Informatics 1 - Fancy Dress and Competition. * >>> Eduard - Gabriel Munteanu: [25]Learning Haskell, part 2. * Martin Sulzmann: [26]Equality, containment and intersection among regular expressions via symbolic manipulation. * Neil Mitchell: [27]mapM, mapM_ and monadic statements. * Alson Kemp: [28]A HAML parser for Haskell. * Chris Done: [29]More Haskell blogging. * Twan van Laarhoven: [30]Knight in n, part 4: tensors. Part four of Twan's enlightening series on computing knight moves. * Alex McLean: [31]Saturday night stream. All the cool kids will be watching Alex's streaming livecoding performance TONIGHT, using (among other things) a tool implemented in Haskell. * David Sankel: [32]Synchronous Events. * Lennart Augustsson: [33]The OCaml code again. * Lennart Augustsson: [34]Abstracting on, suggested solutions. * Lennart Augustsson: [35]The abstraction continues. * Conal Elliott: [36]Functional interactive behavior. * Conal Elliott: [37]Trimming inputs in functional reactive programming. * Mikael Vejdemo Johansson (Syzygy-): [38]J, or how I learned to stop worrying and love the matrix. * Conal Elliott: [39]Why classic FRP does not fit interactive behavior. * Clifford Beshers: [40]Functional Programming Marketing. * Lennart Augustsson: [41]A somewhat failed adventure in Haskell abstraction. * >>> Joey Hess: [42]haskell and xmonad. * Andy Gill: [43]The Timber compiler 1.0.2. * Manuel M T Chakravarty: [44]Not a particularly good article, but.... * >>> Chris Double: [45]Random and Binary IO using Iteratees. * >>> Chris Double: [46]Not a Tutorial on HAppS. * "FP Lunch": [47]The new GHC API. * Luke Palmer: [48]Compact data types. * Neil Mitchell: [49]F# from a Haskell perspective. * Real-World Haskell: [50]RWH Now In Store. * >>> Sebastian Fischer: [51]Constraint Functional-Logic Programming. * >>> fhtr: [52]Hexagons with Haskell. * >>> Eduard - Gabriel Munteanu: [53]Learning Haskell. * Bryan O'Sullivan: [54]Functional programmers on Twitter. * Martin Sulzmann: [55]Parallel Join Patterns with Guards and Propagation. * Martin Sulzmann: [56]Multi-set rewrite rules with guards and a parallel execution scheme. * Martin Sulzmann: [57]STM with control: Communication for retrying transactions. * Martin Sulzmann: [58]Concurrent Goal-Based Execution of Constraint Handling Rules. * >>> talkingCode: [59]Haskell, GTK and Multi-Threading. * >>> Gianfranco Alongi: [60]QuickCheck(ing) the code I C - source. Quotes of the Week * quicksilver: Baughn: glFlush? the 80s called, they want your programs back? * gwern: the best way to optimize a program is to make it lazier or stricter. * ksf: Perl is obfuscated by design, haskell is designed by obfuscation. * conal: omg -- i can print right from emacs again. praise be to Linux! * mmorrow: [I] didn't realize what it really said until after i @remembered it * blackh: Haskell is great because of all the wonderful things you can't do with it. * JustinBogner: gitit's 46 dependencies convinced me to install cabal-install, and now I couldn't be happier! * Anonymous: I'd love to explain to you how to write hello world in Haskell, but first let me introduce you to basic category theory. * lilac: @type \o-> look at my muscles forall t nice muscles. t -> nice -> muscles * ook: (:[]) * oink: <^(oo)^> * mmorrow: {-# RULES "HAI; CAN HAS STDIO?" id = unsafePerformIO (system "killall -9 breathingMachine && xeyes &" >> return id) #-} * gwern: We will be welcomed as liberators! I estimate that we will need 50000 haskellers at most and will be able to wind up the occupation quickly About the Haskell Weekly News New editions are posted to [61]the Haskell mailing list as well as to [62]the Haskell Sequence and [63]Planet Haskell. [64]RSS is also available, and headlines appear on [65]haskell.org. To help create new editions of this newsletter, please see the information on [66]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [67]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://haskell.org/haskellwiki/Haikus 3. http://yaxu.org/saturday-night-stream/ 4. http://article.gmane.org/gmane.comp.lang.haskell.general/16678 5. http://article.gmane.org/gmane.comp.lang.haskell.general/16672 6. http://timber-lang.org/ 7. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/timberc 8. http://article.gmane.org/gmane.comp.lang.haskell.cafe/48778 9. http://article.gmane.org/gmane.comp.lang.haskell.cafe/48721 10. http://www.reddit.com/r/haskell_proposals/ 11. http://article.gmane.org/gmane.comp.lang.haskell.cafe/48663 12. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/permutation 13. http://article.gmane.org/gmane.comp.lang.haskell.cafe/48868 14. http://haskell.org/haskellwiki/Data.List.Split 15. http://article.gmane.org/gmane.comp.lang.haskell.libraries/10406 16. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/protocol-buffers 17. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/protocol-buffers-descriptor 18. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hprotoc 19. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/48806 20. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/48622 21. http://planet.haskell.org/ 22. http://haskell.org/haskellwiki/Blog_articles 23. http://jamiiecb.blogspot.com/2008/12/zombified-gmap.html 24. http://wadler.blogspot.com/2008/12/informatics-1-functional-programming.html 25. http://eduard-munteanu.blogspot.com/2008/12/learning-haskell-part-2.html 26. http://sulzmann.blogspot.com/2008/12/equality-containment-and-intersection.html 27. http://neilmitchell.blogspot.com/2008/12/mapm-mapm-and-monadic-statements.html 28. http://www.alsonkemp.com/programming/a-haml-parser-for-haskell/ 29. http://chrisdone.com/blog/2008/12/11/More-Haskell-blogging 30. http://twan.home.fmf.nl/blog/haskell/Knight4.details 31. http://yaxu.org/saturday-night-stream/ 32. http://netsuperbrain.com/blog/posts/synchronous-events/ 33. http://augustss.blogspot.com/2008/12/ocaml-code-again-im-posting-slight.html 34. http://augustss.blogspot.com/2008/12/abstracting-on-suggested-solutions-i.html 35. http://augustss.blogspot.com/2008/12/abstraction-continues-i-got-several.html 36. http://conal.net/blog/posts/functional-interactive-behavior/ 37. http://conal.net/blog/posts/trimming-inputs-in-functional-reactive-programming/ 38. http://blog.mikael.johanssons.org/archive/2008/12/j-or-how-i-learned-to-stop-worrying-and-love-the-matrix/ 39. http://conal.net/blog/posts/why-classic-frp-does-not-fit-interactive-behavior/ 40. http://cliffordbeshers.blogspot.com/2007/11/functional-programming-marketing.html 41. http://augustss.blogspot.com/2008/12/somewhat-failed-adventure-in-haskell.html 42. http://kitenet.net/~joey/blog/entry/haskell_and_xmonad/ 43. http://blog.unsafeperformio.com/?p=32 44. http://justtesting.org/post/63809222 45. http://www.bluishcoder.co.nz/2008/12/random-and-binary-io-using-iteratees.html 46. http://www.bluishcoder.co.nz/2008/12/not-tutorial-on-happs.html 47. http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=168 48. file://localhost/home/brent/hacking/hwn/20081213.html 49. http://neilmitchell.blogspot.com/2008/12/f-from-haskell-perspective.html 50. http://www.realworldhaskell.org/blog/2008/12/06/rwh-now-in-store/ 51. http://www-ps.informatik.uni-kiel.de/~sebf/projects/cflp.html 52. http://fhtr.blogspot.com/2008/12/hexagons-with-haskell.html 53. http://eduard-munteanu.blogspot.com/2008/12/learning-haskell.html 54. http://www.serpentine.com/blog/2008/12/05/functional-programmers-on-twitter/ 55. http://sulzmann.blogspot.com/2008/12/parallel-join-patterns-with-guards-and.html 56. http://sulzmann.blogspot.com/2008/10/multi-set-rewrite-rules-with-guards-and.html 57. http://sulzmann.blogspot.com/2008/12/stm-with-control-communication-for.html 58. http://sulzmann.blogspot.com/2008/12/concurrent-goal-based-execution-of.html 59. http://talkingcode.co.uk/2008/12/02/haskell-gtk-and-multi-threading/ 60. http://writert.blogspot.com/2008/12/quickchecking-code-i-c-source.html 61. http://www.haskell.org/mailman/listinfo/haskell 62. http://sequence.complete.org/ 63. http://planet.haskell.org/ 64. http://sequence.complete.org/node/feed 65. http://haskell.org/ 66. http://haskell.org/haskellwiki/HWN 67. http://code.haskell.org/~byorgey/code/hwn/ From marco-oweber at gmx.de Sat Dec 13 13:19:57 2008 From: marco-oweber at gmx.de (Marc Weber) Date: Sat Dec 13 13:12:48 2008 Subject: [Haskell] F# to ship as part of Visual Studio 2010 In-Reply-To: <183698280.20081213154235@gmail.com> References: <183698280.20081213154235@gmail.com> Message-ID: <20081213181957.GF16696@gmx.de> On Sat, Dec 13, 2008 at 03:42:35PM +0300, Bulat Ziganshin wrote: > Hello , > > http://blogs.msdn.com/dsyme/archive/2008/12/10/fsharp-to-ship-as-part-of-visual-studio-2010.aspx > > now we can say definitely that 201x decade will be years of FP > replacing OOP in programmers' minds hehe :-) funny. do you think they'll change their the .net libraries to have functional interfaces as well? That'd be required to get OO out of the minds of users.. But there is still enough time till 2010 for that to happen? Thanks for the note. Marc Weber From dons at galois.com Sat Dec 13 14:24:24 2008 From: dons at galois.com (Don Stewart) Date: Sat Dec 13 14:17:07 2008 Subject: [Haskell] Spam on HaskellWiki In-Reply-To: References: Message-ID: <20081213192424.GC22782@scytale.galois.com> ashley: > This is beginning to annoy people. Actually, someone registered several > thousand accounts (of the form XxxxxXxxxx), though almost all of them > have not been used. The others have been used to add spam. > > I can block user accounts and IP addresses, and I can grant this > privilege to others on whatever basis the Haskell community think > appropriate. > > I have CheckUser installed (allows me to find the IP addresses of a > given user, and find edits from a particular IP address), and this is > also a grantable privilege. However, given that the spam is coming from > quite a number of IP addresses, I suspect there is some kind of botnet > involved. > > There is a tool called "rollback" that allows one-click revert of one or > more sequential edits from the same user, which makes reverting spam a > one-click-per-page operation. Again, this is a grantable privilege and > in any case relatively harmless. However, it is only available with > MediaWiki 1.9 and later, and HaskellWiki is running MediaWiki 1.5.4, so > this means doing an upgrade. The current stable release is 1.13.2. Should we be thinking about upgrading now? I imagine there are other benefits... -- Don From dan.doel at gmail.com Sun Dec 14 12:13:44 2008 From: dan.doel at gmail.com (Dan Doel) Date: Sun Dec 14 12:06:43 2008 Subject: [Haskell] ANNOUNCE: uvector-algorithms 0.1 Message-ID: <200812141213.45057.dan.doel@gmail.com> Hello, I've been sitting on this for a while, waiting for some changes to uvector to go in, but finally decided I should just release it, and fix it up if and when said changes go in. So, I'm announcing the first release of uvector- algorithms. What it is is a library of algorithms (mostly sorting) for the mutable arrays defined in uvector. It has several varieties of sorting, including introsort (quicksort which falls back on heapsort in bad cases), heapsort, a simple top- down merge sort and a radix sort (as well as insertion sort, and optimal sorting for length<=4 arrays, which probably won't get much use outside of the implementation of the other sorts). All modules attempt to export as uniform an interface as possible, so that one can substitute between them freely, say when trying to determine which algorithm is best suited for your particular datasets. Also exposed are the operations that allow you to use the arrays as heaps (which is the basis for implementing heapsort), and partial sorts and selects in heap and intro variety. Lastly, there is a combinator for safely using these mutable array algorithms to sort immutable arrays. All of these algorithms have been painstakingly profiled, and their generated core examined to do as little heap allocation and as much unboxing as possible, and to inline and specialize for maximum performance (unless, of course, I've managed to miss anything). I've been running a relatively simple benchmarking suite that tests various kinds of inputs, and in my experience, the sorts herein tend to beat glibc's sort, and do relatively well compared to GNU's STL sorts over vector<>s (taking 50% or so more time at present, although this library may well be better at heapsorting random arrays, if you want something to brag about :)). For future work, I've been working on an implementation of Python's timsort (which is a very fancy bottom-up merge sort), but it's not ready yet. I'd also like to introduce some combinators for easy Schwartzian transforms, but that again requires modifications to uvector. I may also look at moving some of my benchmark program into the package. Suggestions for other algorithms people would like to see are of course welcome (especially if accompanied by papers/references on how to implement them if they're not well known). The hackage page is here: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/uvector-algorithms Enjoy, and please let me know of any issues. -- Dan From lennart at augustsson.net Sun Dec 14 18:47:25 2008 From: lennart at augustsson.net (Lennart Augustsson) Date: Sun Dec 14 18:40:17 2008 Subject: [Haskell] ANN: typehash version 1.3 Message-ID: The typehash library allows you to produce a unique identifier (a cryptographic hash) for a type. This is useful if you save values of some type to a file (text, binary, whatever format you wish) and then when you read it back in again you want to verify that the type you want to read is the one you actually wrote. The type hash takes into account both the actual name of the type and the structure of the type. The type hash is a compact value that only allows comparing for equality. The library also supports type codes. A type code encodes the complete structure of a type and can be used for finer comparison than just equality, e.g., will the read function be able to read what show produced (in this case renaming types and adding constructors is allowed). The library is on hackage, of course. -- Lennart From wasserman.louis at gmail.com Sun Dec 14 19:09:03 2008 From: wasserman.louis at gmail.com (Louis Wasserman) Date: Sun Dec 14 19:01:48 2008 Subject: [Haskell] ANNOUNCE: rangemin-1.0 released Message-ID: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/rangeminefficiently (in effectively linear lazy preprocessing time) processes an array to find minimum elements of subranges of the array in constant time. -- Louis Wasserman wasserman.louis@gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20081214/e562d503/attachment.htm From jgm at berkeley.edu Mon Dec 15 11:17:56 2008 From: jgm at berkeley.edu (John MacFarlane) Date: Mon Dec 15 11:10:42 2008 Subject: [Haskell] possible bug in pretty-1.0.1.0 Message-ID: <20081215161756.GA29082@berkeley.edu> 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. (Maintainer is listed as libraries@haskell.org, but that is a closed mailing list. Perhaps Cabal should include a report-bugs-at field?) John GHCi, version 6.8.3: http://www.haskell.org/ghc/ :? for help ... Prelude Text.PrettyPrint> putStrLn $ render $ hang (char '*') 4 (text "hi" $$ text "there") Loading package pretty-1.0.0.0 ... linking ... done. * hi there GHCi, version 6.10.1: http://www.haskell.org/ghc/ :? for help ... Prelude Text.PrettyPrint> putStrLn $ render $ hang (char '*') 4 (text "hi" $$ text "there") Loading package pretty-1.0.1.0 ... linking ... done. * hi there From icfp.publicity at googlemail.com Mon Dec 15 12:51:27 2008 From: icfp.publicity at googlemail.com (Matthew Fluet (ICFP Publicity Chair)) Date: Mon Dec 15 12:44:14 2008 Subject: [Haskell] ICFP09 Call for Papers Message-ID: <53ff55480812150951r69578128l2acb88d0bccf8232@mail.gmail.com> Call for Papers ICFP 2009: International Conference on Functional Programming Edinburgh, Scotland, 31 August - 2 September 2009 http://www.cs.nott.ac.uk/~gmh/icfp09.html ** Submission deadline: 2 March 2009 ** (submission deadline is earlier than usual) ICFP 2009 seeks original papers on the art and science of functional programming. Submissions are invited on all topics from principles to practice, from foundations to features, from abstraction to application. The scope includes all languages that encourage functional programming, including both purely applicative and imperative languages, as well as languages with objects or concurrency. Particular topics of interest include * Language Design: type systems; concurrency and distribution; modules; components and composition; metaprogramming; relations to object-oriented or logic programming; interoperability * Implementation: abstract machines; compilation; compile-time and run-time optimization; memory management; multi-threading; exploiting parallel hardware; interfaces to foreign functions, services, components or low-level machine resources * Software-Development Techniques: algorithms and data structures; design patterns; specification; verification; validation; proof assistants; debugging; testing; tracing; profiling * Foundations: formal semantics; lambda calculus; rewriting; type theory; monads; continuations; control; state; effects * Transformation and Analysis: abstract interpretation; partial evaluation; program transformation; program calculation; program proof * Applications and Domain-Specific Languages: symbolic computing; formal-methods tools; artificial intelligence; systems programming; distributed-systems and web programming; hardware design; databases; XML processing; scientific and numerical computing; graphical user interfaces; multimedia programming; scripting; system administration; security; education * Functional Pearls: elegant, instructive, and fun essays on functional programming The conference also solicits Experience Reports, which are short papers that provide evidence that functional programming really works or describe obstacles that have kept it from working in a particular application. What's different this year? ~~~~~~~~~~~~~~~~~~~~~~~~~~~ * The conference dates and the submission deadline are about one month earlier than usual. * Special 'Call for Experience Reports' page, suitable as a target for posts on blogs and social networks to reach practitioners who wouldn't normally think about submitting to a conference. If you have a blog, etc., please help by pointing your readers to: http://web.cecs.pdx.edu/~apt/icfp09_cfer.html Instructions for authors ~~~~~~~~~~~~~~~~~~~~~~~~ By Monday, 2 March 2009, 20:00 UTC, submit an abstract of at most 300 words and a full paper of at most 12 pages (4 pages for an Experience Report), including bibliography and figures. The deadline will be strictly enforced and papers exceeding the page limits will be summarily rejected. Authors have the option to attach supplementary material to a submission, on the understanding that reviewers may choose not to look at it. A submission will be evaluated according to its relevance, correctness, significance, originality, and clarity. It should explain its contributions in both general and technical terms, clearly identifying what has been accomplished, explaining why it is significant, and comparing it with previous work. The technical content should be accessible to a broad audience. Functional Pearls and Experience Reports are separate categories of papers that need not report original research results and must be marked as such at the time of submission. Detailed guidelines on both categories are below. Each submission must adhere to SIGPLAN's republication policy, as explained on the web. Violation risks summary rejection of the offending submission. Proceedings will be published by ACM Press. Authors of accepted submissions are expected to transfer the copyright to ACM. Presentations will be videotaped and released online if the presenter consents by signing an additional permission form at the time of the presentation. Released videos will be included along with the conference proceedings in the ACM Digital Library and may also be placed on a host such as YouTube or Google Video. Formatting: ~~~~~~~~~~~ Submissions must be in PDF format printable in black and white on US Letter sized paper and interpretable by Ghostscript. If this requirement is a hardship, make contact with the program chair at least one week before the deadline. ICFP proceedings are printed in black and white. It is permissible to include color in a submission, but you risk annoying reviewers who will have to decide if your final paper will be understandable without it. Papers must adhere to the standard ACM conference format: two columns, nine-point font on a ten-point baseline, with columns 20pc (3.33in) wide and 54pc (9in) tall, with a column gutter of 2pc (0.33in). A suitable document template for LaTeX is available from SIGPLAN. Submission: ~~~~~~~~~~~ Submissions will be accepted electronically at a URL to be named later. The deadline is set in Coordinated Universal Time. The world clock (http://www.timeanddate.com/worldclock/fixedtime.html?month=3&day=2&year=2009&hour=20&min=0&sec=0&p1=0) can give you the equivalent in your local time, e.g., Noon Monday in Seattle, 3:00 PM Monday in New York, 8:00 PM Monday in London, 5:00 AM Tuesday in Tokyo. Citation: ~~~~~~~~~ We recommend (but do not require) that you put your citations into author-date form. This procedure makes your paper easier to review. For example, if you cite a result on testing as ``(Claessen and Hughes 2000)'', many reviewers will recognize the result instantly. On the other hand, if you cite it as ``[4]'', even the best-informed reviewer has to page through your paper to find the reference. By using author-date form, you enable a knowledgeable reviewer to focus on content, not arbitrary numbering of references. LaTeX users can simply use the natbib package along with the plainnat bibliography style. In practice, this means putting \usepackage{natbib} \bibpunct();A{}, \let\cite=\citep in your LaTeX preamble, and \bibliographystyle{plainnat} in your document. For most citations you will use the \cite command; if you want a citation like ``Claessen and Hughes (2000) showed that...'' you should use something like ``\citet{claessen:quickcheck} showed...'' Alternatively, the McBride bibliography style, which adheres to the Chicago manual of style ``Documentation Two'' specifications and which fixes some perceived deficiencies of natbib, may be used. The style file along with instructions for using it is available on the McBride web site. Author response: ~~~~~~~~~~~~~~~~ Authors will have a 48-hour period, starting at 20:00 UTC on 21 April 2009, to read and respond to reviews. Special categories of papers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In addition to research papers, ICFP solicits two kinds of papers that do not require original research contributions: Functional Pearls, which are full papers, and Experience Reports, which are limited to four pages. Authors submitting such papers may wish to consider the following advice. Functional Pearls ~~~~~~~~~~~~~~~~~ A Functional Pearl is an elegant essay about something related to functional programming. It might offer: * a new and thought-provoking way of looking at an old idea * an instructive example of program calculation or proof * a nifty presentation of an old or new data structure * an interesting application of functional programming techniques * a novel use or exposition of functional programming in the classroom Functional Pearls are not restricted to the above varieties, however. While pearls often demonstrate an idea through the development of a short program, there is no requirement or expectation that they do so. Thus, they encompass the notions of theoretical and educational pearls. Functional Pearls are valued as highly and judged as rigorously as ordinary papers, but using somewhat different criteria. In particular, a pearl is not required to report original research. However, it should be concise, instructive, and entertaining. Your pearl is likely to be rejected if your readers get bored, if the material gets too complicated, if too much specialized knowledge is needed, or if the writing is inelegant. The key to writing a good pearl is polishing. A submission you wish to have treated as a pearl must be marked as such on the submission web page, and should contain the words ``Functional Pearl'' somewhere in its title or subtitle. These steps will alert reviewers to use the appropriate evaluation criteria. However, pearls will be combined with ordinary papers for the purpose of computing the conference's acceptance rate. Experience Reports ~~~~~~~~~~~~~~~~~~ The purpose of an Experience Report is to help create a body of published, refereed, citable evidence that functional programming really works---or to describe what obstacles prevent it from working. Possible topics for an Experience Report include, but are not limited to: * insights gained from real-world projects using functional programming * comparison of functional programming with conventional programming in the context of an industrial project or a university curriculum * project-management, business, or legal issues encountered when using functional programming in a real-world project * curricular issues encountered when using functional programming in education * real-world constraints that created special challenges for an implementation of a functional language or for functional programming in general An Experience Report is distinguished from a normal ICFP paper by its title, by its length, and by the criteria used to evaluate it. * Both in the proceedings and in any citations, the title of each accepted Experience Report must begin with the words ``Experience Report'' followed by a colon. The acceptance rate for Experience Reports will be computed and reported separately from the rate for ordinary papers. * An Experience Report is at most 4 pages long. Each accepted Experience Report will be presented at the conference, but depending on the number of Experience Reports and regular papers accepted, authors of Experience reports may be asked to give shorter talks. * Because the purpose of Experience Reports is to enable our community to accumulate a body of evidence about the efficacy of functional programming, an acceptable Experience Report need not add to the body of knowledge of the functional-programming community by presenting novel results or conclusions. It is sufficient if the Report states a clear thesis and provides supporting evidence. The thesis must be relevant to ICFP, but it need not be novel. The program committee will accept or reject Experience Reports based on whether they judge the evidence to be convincing. Anecdotal evidence will be acceptable provided it is well argued and the author explains what efforts were made to gather as much evidence as possible. Typically, more convincing evidence is obtained from papers which show how functional programming was used than from papers which only say that functional programming was used. The most convincing evidence often includes comparisons of situations before and after the introduction or discontinuation of functional programming. Evidence drawn from a single person's experience may be sufficient, but more weight will be given to evidence drawn from the experience of groups of people. An Experience Report should be short and to the point: make a claim about how well functional programming worked on your project and why, and produce evidence to substantiate your claim. If functional programming worked for you in the same ways it has worked for others, you need only to summarize the results---the main part of your paper should discuss how well it worked and in what context. Most readers will not want to know all the details of your project and its implementation, but please characterize your project and its context well enough so that readers can judge to what degree your experience is relevant to their own projects. Be especially careful to highlight any unusual aspects of your project. Also keep in mind that specifics about your project are more valuable than generalities about functional programming; for example, it is more valuable to say that your team delivered its software a month ahead of schedule than it is to say that functional programming made your team more productive. If your paper not only describes experience but also presents new technical results, or if your experience refutes cherished beliefs of the functional-programming community, you may be better off submitting it as a full paper, which will be judged by the usual criteria of novelty, originality, and relevance. If you are unsure in which category to submit, the program chair will be happy to help you decide. Other information ~~~~~~~~~~~~~~~~~ Conference Chair ~~~~~~~~~~~~~~~~ Graham Hutton (University of Nottingham) Program Chair ~~~~~~~~~~~~~ Andrew Tolmach Department of Computer Science Portland State University P.O. Box 751, Portland, OR 97207 USA Email: apt@cs.pdx.edu Phone: +1 503 725 5492 Fax: +1 503 725 3211 Mail sent to the address above is filtered for spam. If you send mail and do not receive a prompt response, particularly if the deadline is looming, feel free to telephone. Program Committee ~~~~~~~~~~~~~~~~~ Amal Ahmed (Toyota Technological Institute, Chicago) Maria Alpuente (Technical University of Valencia (UPV)) Lennart Augustsson (Standard Chartered Bank) Lars Birkedal (IT University of Copenhagen) Manuel Chakravarty (University of New South Wales) Koen Claessen (Chalmers University of Technology) Marc Feeley (Universite de Montreal) Andrzej Filinski (University of Copenhagen) Daan Leijen (Microsoft Research) Xavier Leroy (INRIA Paris-Rocquencourt) Conor McBride (University of Strathclyde) Matthew Might (University of Utah) Shin-Cheng Mu (Academia Sinica) Atsushi Ohori (Tohoku University) Kristoffer Rose (IBM Thomas J. Watson Research Center) Important Dates (at 20:00 UTC) ~~~~~~~~~~~~~~~ Submission: 2 March 2009 Author response: 21-23 April 2009 Notification: 5 May 2009 Final papers due: 8 June 2009 ICFP 2009 Web Site ~~~~~~~~~~~~~~~~~~ http://www.cs.nott.ac.uk/~gmh/icfp09.html Special Journal Issue ~~~~~~~~~~~~~~~~~~~~~ There will be a special issue of the Journal of Functional Programming with papers from ICFP 2009. The program committee will invite the authors of select accepted papers to submit a journal version to this issue. From rjljr2 at yahoo.com Mon Dec 15 16:36:26 2008 From: rjljr2 at yahoo.com (Ronald Legere) Date: Mon Dec 15 16:29:09 2008 Subject: [Haskell] Missing Documentation Message-ID: <132824.25314.qm@web50912.mail.re2.yahoo.com> This may very well be a FAQ, but I tried to search the archives and could not find a post... Anyway, some documentation seems to be missing, which was there before I thought. For example: http://www.haskell.org/ghc/docs/latest/html/libraries/haskell98/Random.html Thanks, and sorry if this lowers the S/N Ron From ndmitchell at gmail.com Tue Dec 16 03:45:54 2008 From: ndmitchell at gmail.com (Neil Mitchell) Date: Tue Dec 16 03:38:46 2008 Subject: [Haskell] Missing Documentation In-Reply-To: <132824.25314.qm@web50912.mail.re2.yahoo.com> References: <132824.25314.qm@web50912.mail.re2.yahoo.com> Message-ID: <404396ef0812160045h370b280cib521488b7a39ccc4@mail.gmail.com> Hi Ron > This may very well be a FAQ, but I tried to search the archives and could not find a post... > Anyway, some documentation seems to be missing, which was there before I thought. For example: > http://www.haskell.org/ghc/docs/latest/html/libraries/haskell98/Random.html That's a bug, I've reported it here: http://hackage.haskell.org/trac/ghc/ticket/2886 > Thanks, and sorry if this lowers the S/N We usually use haskell@ for annoucements, and haskell-cafe@ for general discussion/questions etc, so in future these kinds of posts should go on that mailing list. It's a confusing system! Any follow ups to this post should also only go to haskell-cafe@ Thanks Neil From ndmitchell at gmail.com Sat Dec 20 04:55:30 2008 From: ndmitchell at gmail.com (Neil Mitchell) Date: Sat Dec 20 04:47:59 2008 Subject: [Haskell] ANN: HLint 1.0 Message-ID: <404396ef0812200155of1d4331tc35ca0a34609c8@mail.gmail.com> Hi, I am pleased to announce HLint, a tool for making suggestions to improve your Haskell code. Previously this tool was called Dr Haskell and depended on a working installation of Yhc - both of those have now changed. HLint requires GHC 6.10*, and to install simply type: cabal update && cabal install hlint If you haven't yet installed the cabal command, instructions are here: http://ghcmutterings.wordpress.com/2008/11/10/bootstrapping-cabal-install/ As an example of what HLint does, running "hlint darcs-2.1.2" over the latest stable release of darcs gives 385 suggestions, including: darcs-2.1.2\src\CommandLine.lhs:46:1: Use a string literal Found: [' ', '\t', '"', '%'] Why not: " \t\"%" darcs-2.1.2\src\CommandLine.lhs:49:1: Eta reduce Found: quotedArg ftable = between (char '"') (char '"') $ quoteContent ftable Why not: quotedArg = between (char '"') (char '"') . quoteContent darcs-2.1.2\src\CommandLine.lhs:94:1: Use concatMap Found: concat $ map escapeC s Why not: concatMap escapeC s To see all the hints in a nice interactive document visit http://www-users.cs.york.ac.uk/~ndm/hlint/hlint-report.htm (recommended if you are thinking of trying out hlint) All necessary links, including a manual, hackage links, bug tracker and source code can be found from the tool website: http://www-users.cs.york.ac.uk/~ndm/hlint/ Acknowledgements: Niklas Broberg and the haskell-src-exts package have both been very helpful. The darcs users mailing list gave many good suggestions which I've incorportated. Please direct any follow up conversations to haskell-cafe@ Thanks Neil * Why GHC 6.10? View patterns. From hpacheco at gmail.com Sat Dec 20 05:21:06 2008 From: hpacheco at gmail.com (Hugo Pacheco) Date: Sat Dec 20 05:13:35 2008 Subject: [Haskell] ANN: HLint 1.0 In-Reply-To: <404396ef0812200155of1d4331tc35ca0a34609c8@mail.gmail.com> References: <404396ef0812200155of1d4331tc35ca0a34609c8@mail.gmail.com> Message-ID: <7b92c2840812200221m1e6c8e7x87b521e307defd6@mail.gmail.com> I noticed that you convert point-wise into point-free.Perhaps you could add some point-free transformations to remove redundancy in certain cases. Is that a goal of the library? Cheers, hugo On Sat, Dec 20, 2008 at 9:55 AM, Neil Mitchell wrote: > Hi, > > I am pleased to announce HLint, a tool for making suggestions to > improve your Haskell code. Previously this tool was called Dr Haskell > and depended on a working installation of Yhc - both of those have now > changed. HLint requires GHC 6.10*, and to install simply type: > > cabal update && cabal install hlint > > If you haven't yet installed the cabal command, instructions are here: > http://ghcmutterings.wordpress.com/2008/11/10/bootstrapping-cabal-install/ > > As an example of what HLint does, running "hlint darcs-2.1.2" over the > latest stable release of darcs gives 385 suggestions, including: > > darcs-2.1.2\src\CommandLine.lhs:46:1: Use a string literal > Found: > [' ', '\t', '"', '%'] > Why not: > " \t\"%" > > darcs-2.1.2\src\CommandLine.lhs:49:1: Eta reduce > Found: > quotedArg ftable > = between (char '"') (char '"') $ quoteContent ftable > Why not: > quotedArg = between (char '"') (char '"') . quoteContent > > darcs-2.1.2\src\CommandLine.lhs:94:1: Use concatMap > Found: > concat $ map escapeC s > Why not: > concatMap escapeC s > > To see all the hints in a nice interactive document visit > http://www-users.cs.york.ac.uk/~ndm/hlint/hlint-report.htm > (recommended if you are thinking of trying out hlint) > > All necessary links, including a manual, hackage links, bug tracker > and source code can be found from the tool website: > http://www-users.cs.york.ac.uk/~ndm/hlint/ > > Acknowledgements: Niklas Broberg and the haskell-src-exts package have > both been very helpful. The darcs users mailing list gave many good > suggestions which I've incorportated. > > Please direct any follow up conversations to haskell-cafe@ > > Thanks > > Neil > > * Why GHC 6.10? View patterns. > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > -- www.di.uminho.pt/~hpacheco -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20081220/7c424dac/attachment.htm From lennart at augustsson.net Sat Dec 20 10:45:55 2008 From: lennart at augustsson.net (Lennart Augustsson) Date: Sat Dec 20 10:38:22 2008 Subject: [Haskell] ANN: HLint 1.0 In-Reply-To: <404396ef0812200155of1d4331tc35ca0a34609c8@mail.gmail.com> References: <404396ef0812200155of1d4331tc35ca0a34609c8@mail.gmail.com> Message-ID: It would be nice if HLint didn't suggest things that it will object to in the next round. Like LLVM/Core/CodeGen.hs:176:1: Eta reduce Found: applyArgs f g = apArgs 0 f g Why not: applyArgs f = apArgs 0 f BTW, great tool! -- Lennart From lennart at augustsson.net Sat Dec 20 10:48:51 2008 From: lennart at augustsson.net (Lennart Augustsson) Date: Sat Dec 20 10:41:19 2008 Subject: [Haskell] ANN: HLint 1.0 In-Reply-To: <404396ef0812200155of1d4331tc35ca0a34609c8@mail.gmail.com> References: <404396ef0812200155of1d4331tc35ca0a34609c8@mail.gmail.com> Message-ID: Another parse error: newtype CodeGenModule a = CGM (StateT CGMState IO a) deriving (Monad, MonadState CGMState, MonadIO) On Sat, Dec 20, 2008 at 9:55 AM, Neil Mitchell wrote: > Hi, > > I am pleased to announce HLint, a tool for making suggestions to > improve your Haskell code. Previously this tool was called Dr Haskell > and depended on a working installation of Yhc - both of those have now > changed. HLint requires GHC 6.10*, and to install simply type: > > cabal update && cabal install hlint > > If you haven't yet installed the cabal command, instructions are here: > http://ghcmutterings.wordpress.com/2008/11/10/bootstrapping-cabal-install/ > > As an example of what HLint does, running "hlint darcs-2.1.2" over the > latest stable release of darcs gives 385 suggestions, including: > > darcs-2.1.2\src\CommandLine.lhs:46:1: Use a string literal > Found: > [' ', '\t', '"', '%'] > Why not: > " \t\"%" > > darcs-2.1.2\src\CommandLine.lhs:49:1: Eta reduce > Found: > quotedArg ftable > = between (char '"') (char '"') $ quoteContent ftable > Why not: > quotedArg = between (char '"') (char '"') . quoteContent > > darcs-2.1.2\src\CommandLine.lhs:94:1: Use concatMap > Found: > concat $ map escapeC s > Why not: > concatMap escapeC s > > To see all the hints in a nice interactive document visit > http://www-users.cs.york.ac.uk/~ndm/hlint/hlint-report.htm > (recommended if you are thinking of trying out hlint) > > All necessary links, including a manual, hackage links, bug tracker > and source code can be found from the tool website: > http://www-users.cs.york.ac.uk/~ndm/hlint/ > > Acknowledgements: Niklas Broberg and the haskell-src-exts package have > both been very helpful. The darcs users mailing list gave many good > suggestions which I've incorportated. > > Please direct any follow up conversations to haskell-cafe@ > > Thanks > > Neil > > * Why GHC 6.10? View patterns. > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > From niklas.broberg at gmail.com Sat Dec 20 10:59:55 2008 From: niklas.broberg at gmail.com (Niklas Broberg) Date: Sat Dec 20 10:52:24 2008 Subject: [Haskell] ANN: HLint 1.0 In-Reply-To: References: <404396ef0812200155of1d4331tc35ca0a34609c8@mail.gmail.com> Message-ID: > Another parse error: > > newtype CodeGenModule a = CGM (StateT CGMState IO a) > deriving (Monad, MonadState CGMState, MonadIO) Thanks Lennart, another one on my plate, shouldn't be hard to fix. Neil, your tool seems to be gold for finding bugs in HSE. :-) Cheers, /Niklas From nr at cs.tufts.edu Sat Dec 20 21:02:20 2008 From: nr at cs.tufts.edu (Norman Ramsey) Date: Sat Dec 20 20:54:48 2008 Subject: [Haskell] Spam on HaskellWiki In-Reply-To: (sfid-H-20081213-061312-+45.26-1@multi.osbf.lua) References: (sfid-H-20081213-061312-+45.26-1@multi.osbf.lua) Message-ID: <20081221020221.C4D68C06E@jindo.eecs.harvard.edu> > This is beginning to annoy people. Actually, someone registered several > thousand accounts (of the form XxxxxXxxxx), though almost all of them > have not been used. The others have been used to add spam. For almost 2 years I have been working with Fidelis Assis to adapt his email spam filter OSBF-Lua to broader purposes. We would love to see if it is possible to detect Wiki spam. I am sorry to say that none of the code is written in Haskell :-) OSBF-Lua uses machine learning and probably requires on the order of 100 samples each of ham and spam before it starts to be useful (on email). If you have samples, especially if they are tagged with username and IP address, please send them and I will run an experiment and let you know if we can help. Our tool divides messages into three classes: Confidently ham Confidently spam Low confidence For the tool to work, a significant fraction of messages with low confidence need to be trained by a person. A major engineering question is who gets training privileges: there need to be enough people so that training is not burdensome, yet few enough so that one doesn't grant training privileges to spammers. Fidelis and I can think about adding some sort of audit trail that would make it possible undo all trainings done by a given user, for example. Norman From ndmitchell at gmail.com Sun Dec 21 05:55:42 2008 From: ndmitchell at gmail.com (Neil Mitchell) Date: Sun Dec 21 05:48:07 2008 Subject: [Haskell] ANN: Hoogle with more libraries Message-ID: <404396ef0812210255u2d67ebd9l90a55121ea26b493@mail.gmail.com> Hi, I am pleased to annouce that the Hoogle on http://haskell.org/hoogle will now search lots of the libraries present on hackage. For example, to search for the parse function in tagsoup, try: "parse +tagsoup" (http://haskell.org/hoogle/?hoogle=parse+%2Btagsoup) By default Hoogle will still search the default libraries it always has (cabal, base etc.) but now, by doing +packagename, you can search for any of the libraries listed at the bottom of this message. The work of generating the necessary search databases was done by Gwern Branwen, for which I am very grateful. This is early work, and there are certain to be bugs. For example, when searching a package String /= [Char], documentation might not always be present, constructors containing functions might be a bit iffy, not all packages are present, no executables are present, if you mistype the +packagename it won't say anything. Hopefully these will all be addressed over time. QUESTIONS At the moment Hoogle searches will default to the small set of packages shipped with GHC. What should Hoogle default to? What compound sets of packages should be defined? i.e. there will probably be hlp which corresponds to all the Haskell Library Platform packages. This is a community tool, and these sorts of decisions are ones for the whole community. Otherwise by default you are likely to end up searching uniplate, tagsoup, safe, filepath, proposition, homeomorphic and binarydefer :-) HELP ME I can't currently recompile Hoogle, which is a bit of an issue! The haskell.org server gives the error message "timer_create: Operation not supported" on any relatively recent binaries created by GHC. I need to be able to compile the hoogle executable and upload it so it works. I used to do this using a copy of GHC 6.6.1 installed at York, but that was recently removed (6.6.0 has a bug which crashes hoogle, 6.8+ makes use of timer_create). How easy is it to make the haskell.org server support timer_create? How easy is it to generate binaries that don't depend on it? Anyone any good advice? Please direct any follow-ups to haskell-cafe@ Thanks Neil The libraries currently supported by hoogle are: adaptive aern-net alsa-midi ansi-terminal ansi-wl-pprint anydbm applescript arff array arrows astar attoparsec autoproc avltree base64-string benchpress bencode berkeleydbxml binary-search binary bio bitset bitsyntax bktrees bloomfilter botpp brainfuck bytestring-csv bytestring-mmap bytestring bytestringparser bytestringreadp c-io cabal cabalrpmdeps carray cc-delcont cgi-undecidable cgi change-monger chasingbottoms checked christmastree chunks classify clevercss cmath codec-compression-lzf codec-libevent colock colour compact-map condorcet containers control-monad-free control-monad-omega control-timeout cordering coreerlang cpphs csv ctemplate curl data-accessor-template data-accessor data-default data-ivar data-memocombinators data-quotientref dataenc debian-binary debugtracehelpers decimal delicious delimited-text diff dlist dotgen download-curl download drhylo dsp edisonapi edisoncore edit-distance editline eeconfig encode event-handlers event-list event-monad explicit-exception extensible-exceptions external-sort fec feed ffeed fgl fieldtrip filepath finance-quote-yahoo fingertree finitemap fixpoint flickr flock formlets freesound ftgl fungen funsat garsia-wachs geoip ghc-paths glfw-ogl glfw glob glut gmap gnuplot googlechart graphics-drawingcombinators graphicsformats graphscc graphviz gravatar grotetrap hacanon-light hake happs-ixset happs-util harm harp haskeline haskeline.txt haskell-lexer haskell-src-exts haskell-src haskell98 haxml haxml.txt hcl hcodecs heap hedi hexdump hexpat hfov hgalib hgdbmi hgeometric highlighting-kate hinotify hinstaller hjavascript hjs hjscript hledger hlongurl hmarkup hmeap hmidi hmm homeomorphic hopenssl hosc hosc.txt hpc hpdf hsasa hsc3-dot hsc3-unsafe hsc3 hsc3.txt hscolour hsconfigure hsemail hsh hshhelpers hslogger hslua hsoundfile hsparrot hspr-sh hstats hstringtemplate hstringtemplatehelpers hsx-xhtml html http-shed http http.txt httpd-shed hunit hxt-filter hxt i18n icalendar iff ifs imlib indentparser infinite-search infix infixapplicative interlude io-reactive ipprint irc join json lazyarray lcs libmpd libxml lispparser list-extras listlike listzipper logfloat logict lru lub maccatcher main main.txt marked-pretty markov-chain maybet mediawiki memotrie mersenne-random-pure64 mersenne-random microbench midi mime-string mime mmap mmtl monad-loops monad-param monadlab monadprompt monadrandom mps mtl-tf mtl mtlparse mucipher multisetrewrite munkres n-m nano-md5 nanocurses nat network-dns network-multicast network non-negative numbers numeric-prelude numeric-quest obdd oeis old-locale old-time onetuple openal opengl openglcheck opml packedstring parallel parport parse-dimacs parseargs parsec parsec.txt parsedate parserfunction pcre-light peano-inf penn-treebank phonetic-code pipe pkcs1 pngload polyparse popenhs porte powermate pqc pretty prettyclass printf-mauke printf-th priority-queue probability process property-list protocol-buffers-descriptor protocol-buffers psqueue pure-fft puremd5 queue quickcheck random-access-list random ranged-sets rangemin rbr rdtsc readline refserialize regex-base regex-compat regex-pcre-builtin regex-pcre regex-posix regexpr-symbolic regexpr regexqq reord rjson rmonad rosezipper rss safe safecopy scgi sdl-image sdl-mixer sdl-ttf sdl selenium setlocale shellac-compatline shellac-editline shellac-readline shellac simple-reflect simpleargs smallcheck smtpclient smtpclient.txt sphinx sqlite state stateref statistics-fusion stb-image stemmer stm stmcontrol stmonadtrans storable-complex stream stringsearch stringtable-atom suffixtree supercollider-ht swf syb sybwidget system-inotify system-uuid tabular taglib tagsoup-ht tagsoup tar tcache template-haskell template terminfo terminfo.txt test-framework-hunit test-framework-quickcheck th-fold thih thrist tttas typehash unamb unamb.txt unicode-names unicode-normalization unicode-properties uniplate unix-compat unix-pty-light unix unlambda uri-template url utf8-light utf8-prelude utf8-string uulib uvector-algorithms value-supply vcard vty wave wavesurfer whim witness wl-pprint workflow wurfl x11-extras x11-xft xcb-types xhtml xml-parsec xml yampa yjtools zip-archive zipedit zipfold zlib From tom.davie at gmail.com Sun Dec 21 06:11:41 2008 From: tom.davie at gmail.com (Thomas Davie) Date: Sun Dec 21 06:04:08 2008 Subject: [Haskell] ANN: Hoogle with more libraries In-Reply-To: <404396ef0812210255u2d67ebd9l90a55121ea26b493@mail.gmail.com> References: <404396ef0812210255u2d67ebd9l90a55121ea26b493@mail.gmail.com> Message-ID: <93EF0BE3-0792-40BF-B07B-8C3FAC290CFD@gmail.com> Hi Neil, This is a great addition! There's several packages up there that I want to search. A couple of small bug reports though: 1. Searching using a package name that isn't all lower case results in nothing (e.g. (a -> b) -> f a -> f b +InfixApplicative gives no results, while (a -> b) -> f a -> f b +infixapplicative gives 2). 2. Searching with the +package syntax seems to remove all other possible results. Perhaps it would be nice to show results from the default library set below. And one feature request: If you get the package name wrong (i.e. specify a package that hoogle can't see), it would be nice for it to report something like google does -- maybe you meant xyz. Bob On 21 Dec 2008, at 11:55, Neil Mitchell wrote: > Hi, > > I am pleased to annouce that the Hoogle on http://haskell.org/hoogle > will now search lots of the libraries present on hackage. For example, > to search for the parse function in tagsoup, try: > > "parse +tagsoup" (http://haskell.org/hoogle/?hoogle=parse+%2Btagsoup) > > By default Hoogle will still search the default libraries it always > has (cabal, base etc.) but now, by doing +packagename, you can search > for any of the libraries listed at the bottom of this message. The > work of generating the necessary search databases was done by Gwern > Branwen, for which I am very grateful. > > This is early work, and there are certain to be bugs. For example, > when searching a package String /= [Char], documentation might not > always be present, constructors containing functions might be a bit > iffy, not all packages are present, no executables are present, if you > mistype the +packagename it won't say anything. Hopefully these will > all be addressed over time. > > QUESTIONS > > At the moment Hoogle searches will default to the small set of > packages shipped with GHC. What should Hoogle default to? What > compound sets of packages should be defined? i.e. there will probably > be hlp which corresponds to all the Haskell Library Platform packages. > This is a community tool, and these sorts of decisions are ones for > the whole community. Otherwise by default you are likely to end up > searching uniplate, tagsoup, safe, filepath, proposition, homeomorphic > and binarydefer :-) > > HELP ME > > I can't currently recompile Hoogle, which is a bit of an issue! The > haskell.org server gives the error message "timer_create: Operation > not supported" on any relatively recent binaries created by GHC. I > need to be able to compile the hoogle executable and upload it so it > works. I used to do this using a copy of GHC 6.6.1 installed at York, > but that was recently removed (6.6.0 has a bug which crashes hoogle, > 6.8+ makes use of timer_create). How easy is it to make the > haskell.org server support timer_create? How easy is it to generate > binaries that don't depend on it? Anyone any good advice? > > Please direct any follow-ups to haskell-cafe@ > > Thanks > > Neil > > The libraries currently supported by hoogle are: > > adaptive aern-net alsa-midi ansi-terminal ansi-wl-pprint anydbm > applescript arff array arrows astar attoparsec autoproc avltree > base64-string benchpress bencode berkeleydbxml binary-search binary > bio bitset bitsyntax bktrees bloomfilter botpp brainfuck > bytestring-csv bytestring-mmap bytestring bytestringparser > bytestringreadp c-io cabal cabalrpmdeps carray cc-delcont > cgi-undecidable cgi change-monger chasingbottoms checked christmastree > chunks classify clevercss cmath codec-compression-lzf codec-libevent > colock colour compact-map condorcet containers control-monad-free > control-monad-omega control-timeout cordering coreerlang cpphs csv > ctemplate curl data-accessor-template data-accessor data-default > data-ivar data-memocombinators data-quotientref dataenc debian-binary > debugtracehelpers decimal delicious delimited-text diff dlist dotgen > download-curl download drhylo dsp edisonapi edisoncore edit-distance > editline eeconfig encode event-handlers event-list event-monad > explicit-exception extensible-exceptions external-sort fec feed ffeed > fgl fieldtrip filepath finance-quote-yahoo fingertree finitemap > fixpoint flickr flock formlets freesound ftgl fungen funsat > garsia-wachs geoip ghc-paths glfw-ogl glfw glob glut gmap gnuplot > googlechart graphics-drawingcombinators graphicsformats graphscc > graphviz gravatar grotetrap hacanon-light hake happs-ixset happs-util > harm harp haskeline haskeline.txt haskell-lexer haskell-src-exts > haskell-src haskell98 haxml haxml.txt hcl hcodecs heap hedi hexdump > hexpat hfov hgalib hgdbmi hgeometric highlighting-kate hinotify > hinstaller hjavascript hjs hjscript hledger hlongurl hmarkup hmeap > hmidi hmm homeomorphic hopenssl hosc hosc.txt hpc hpdf hsasa hsc3-dot > hsc3-unsafe hsc3 hsc3.txt hscolour hsconfigure hsemail hsh hshhelpers > hslogger hslua hsoundfile hsparrot hspr-sh hstats hstringtemplate > hstringtemplatehelpers hsx-xhtml html http-shed http http.txt > httpd-shed hunit hxt-filter hxt i18n icalendar iff ifs imlib > indentparser infinite-search infix infixapplicative interlude > io-reactive ipprint irc join json lazyarray lcs libmpd libxml > lispparser list-extras listlike listzipper logfloat logict lru lub > maccatcher main main.txt marked-pretty markov-chain maybet mediawiki > memotrie mersenne-random-pure64 mersenne-random microbench midi > mime-string mime mmap mmtl monad-loops monad-param monadlab > monadprompt monadrandom mps mtl-tf mtl mtlparse mucipher > multisetrewrite munkres n-m nano-md5 nanocurses nat network-dns > network-multicast network non-negative numbers numeric-prelude > numeric-quest obdd oeis old-locale old-time onetuple openal opengl > openglcheck opml packedstring parallel parport parse-dimacs parseargs > parsec parsec.txt parsedate parserfunction pcre-light peano-inf > penn-treebank phonetic-code pipe pkcs1 pngload polyparse popenhs porte > powermate pqc pretty prettyclass printf-mauke printf-th priority-queue > probability process property-list protocol-buffers-descriptor > protocol-buffers psqueue pure-fft puremd5 queue quickcheck > random-access-list random ranged-sets rangemin rbr rdtsc readline > refserialize regex-base regex-compat regex-pcre-builtin regex-pcre > regex-posix regexpr-symbolic regexpr regexqq reord rjson rmonad > rosezipper rss safe safecopy scgi sdl-image sdl-mixer sdl-ttf sdl > selenium setlocale shellac-compatline shellac-editline > shellac-readline shellac simple-reflect simpleargs smallcheck > smtpclient smtpclient.txt sphinx sqlite state stateref > statistics-fusion stb-image stemmer stm stmcontrol stmonadtrans > storable-complex stream stringsearch stringtable-atom suffixtree > supercollider-ht swf syb sybwidget system-inotify system-uuid tabular > taglib tagsoup-ht tagsoup tar tcache template-haskell template > terminfo terminfo.txt test-framework-hunit test-framework-quickcheck > th-fold thih thrist tttas typehash unamb unamb.txt unicode-names > unicode-normalization unicode-properties uniplate unix-compat > unix-pty-light unix unlambda uri-template url utf8-light utf8-prelude > utf8-string uulib uvector-algorithms value-supply vcard vty wave > wavesurfer whim witness wl-pprint workflow wurfl x11-extras x11-xft > xcb-types xhtml xml-parsec xml yampa yjtools zip-archive zipedit > zipfold zlib > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell From byorgey at seas.upenn.edu Sun Dec 21 14:17:04 2008 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Sun Dec 21 14:09:29 2008 Subject: [Haskell] ANN: Data.List.Split Message-ID: <20081221191704.GA24992@seas.upenn.edu> I am pleased to announce the release of Data.List.Split, which provides a wide range of strategies and a unified combinator framework for splitting lists with respect to some sort of delimiter. It strives to be flexible yet simple. If you've ever wished there was a simple 'split' function you could grab from Data.List, this is the package for you---no matter which of the seventeen* slightly different ways to split a list you actually need! Just use one of the prepackaged splitting strategies, or build your own with the combinator library. Get it from Hackage: cabal install split http://hackage.haskell.org/cgi-bin/hackage-scripts/package/split Get the source: darcs get http://code.haskell.org/~byorgey/code/split Get excited: http://byorgey.wordpress.com/2008/12/21/datalistsplit/ -Brent * Actual number may vary. From lennart at augustsson.net Mon Dec 22 02:39:52 2008 From: lennart at augustsson.net (Lennart Augustsson) Date: Mon Dec 22 02:32:26 2008 Subject: [Haskell] ANN: llvm-0.4.0.1 Message-ID: We have now released version 0.4.0.1 of the Haskell LLVM bindings. (This release that is quite incompatible with the old 0.0.2 release.) LLVM is a virtual machine and the bindings allow you to generate code for this virtual machine. This code can then be executed by a JIT or written to a file for further processing by the LLVM tools. The LLVM bindings has two layers. You can either use the low level bindings that is just the same as the C bindings for the LLVM. This level is quite unsafe as there is very little type checking. The recommended way is a high level binding (somewhat less complete) which eliminates many errors by leveraging the Haskell type system. A simple example, generating code for a function that adds two numbers and then calling it from Haskell: import Data.Int import LLVM.Core import LLVM.ExecutionEngine cgplus :: CodeGenModule (Function (Int32 -> Int32 -> IO Int32)) cgplus = createFunction InternalLinkage $ \ x y -> do r <- add x y ret r main = do ioplus <- simpleFunction cgplus let plus = unsafePurify ioplus print $ plus 20 22 Enjoy! Bryan O'Sullivan Lennart Augustsson From Marnix.Klooster at infor.com Tue Dec 23 05:51:09 2008 From: Marnix.Klooster at infor.com (Marnix Klooster) Date: Tue Dec 23 05:43:30 2008 Subject: [Haskell] ANN: llvm-0.4.0.1 In-Reply-To: References: Message-ID: <5F84916A2E7FE645977FC7290CF485700392F746@nlbawexmb2.infor.com> Hi all, For completeness: I'm assuming http://darcs.serpentine.com/llvm is the site for the LLVM Haskell bindings, according to the earlier announcement http://groups.google.com/group/fa.haskell/browse_thread/thread/35575d8bb 8a5b31c. Groetjes, <>< Marnix -----Original Message----- From: haskell-bounces@haskell.org [mailto:haskell-bounces@haskell.org] On Behalf Of Lennart Augustsson Sent: Monday, December 22, 2008 8:40 To: Haskell; Haskell Cafe Subject: [Haskell] ANN: llvm-0.4.0.1 We have now released version 0.4.0.1 of the Haskell LLVM bindings. (This release that is quite incompatible with the old 0.0.2 release.) LLVM is a virtual machine and the bindings allow you to generate code for this virtual machine. This code can then be executed by a JIT or written to a file for further processing by the LLVM tools. The LLVM bindings has two layers. You can either use the low level bindings that is just the same as the C bindings for the LLVM. This level is quite unsafe as there is very little type checking. The recommended way is a high level binding (somewhat less complete) which eliminates many errors by leveraging the Haskell type system. A simple example, generating code for a function that adds two numbers and then calling it from Haskell: import Data.Int import LLVM.Core import LLVM.ExecutionEngine cgplus :: CodeGenModule (Function (Int32 -> Int32 -> IO Int32)) cgplus = createFunction InternalLinkage $ \ x y -> do r <- add x y ret r main = do ioplus <- simpleFunction cgplus let plus = unsafePurify ioplus print $ plus 20 22 Enjoy! Bryan O'Sullivan Lennart Augustsson _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell From wiiat at kis-lab.com Tue Dec 23 12:30:47 2008 From: wiiat at kis-lab.com (WI-IAT'09) Date: Tue Dec 23 12:24:01 2008 Subject: [Haskell] WI/IAT'09: Call for Workshop Proposals (Milano, Italy) Message-ID: <200812240230470496262@kis-lab.com> [Apologies if you receive this more than once] ============================================================== Call for Workshop Proposals 2009 IEEE/WIC/ACM International Joint Conference on Web Intelligence and Intelligent Agent Technology (WI-IAT'09) Milano, Italy, September 15-18, 2009 http://www.wi-iat09.disco.unimib.it/WI09/WIhome.htm http://www.wi-iat09.disco.unimib.it/IAT09/IAThome.htm ******************************************************************* Workshop Proposals Due: ** January 15 **, 2009 All papers accepted for workshops will be included in the Workshop Proceedings published by the IEEE Computer Society Press, which are indexed by EI. =================================================================== The Program Committees of the 2009 IEEE/WIC/ACM International Joint Conference on Web Intelligence and Intelligent Agent Technology (WI-IAT'09) invite proposals for Workshops. The Workshops will be held within the Conference, September 15-18, 2009 at Milano, Italy. The main goal of the WI-IAT'09 workshops is to stimulate and facilitate active exchange, interaction and comparison of approaches, methods and ideas related to specific topics, both theoretical and applied, in the general areas related to Web Intelligence and Intelligent Agent Technology. The workshops will provide an informal setting where participants will have the opportunity to discuss specific technical topics in an atmosphere that fosters the active exchange of ideas. The workshop organizers will be responsible for advertising the workshop, forming the program committees, reviewing and selecting the papers, and guaranteeing a high quality worthy of the prestige and range of the Conference. All papers accepted for workshops will be included in the Workshop Proceedings, which are expected to be published by IEEE Computer Society Press and will be available at the workshops. The workshop organizers will also have the discretion of editing selected papers (after their expansion and revision) into books or special journal issues. Workshops may be full-day or half-day. A full-day workshop should select 10-14 regular papers, while a half-day workshop should select 5-7 regular papers, from a large number of submissions. Submissions accepted as workshop papers will be allocated 4 pages in the proceedings. The workshop organizers should ensure the presence of authors of accepted papers at the workshops. Optionally, the workshop may be started or concluded by a panel focusing on interesting aspects, controversial issues, or unsolved problems to stimulate lively, thoughtful, and thought-provoking debate; we expect the workshop organizers to actively engage the audience and help them gain a deeper understanding of the issues. The goal of a panel is to debate and thus panels should always reflect more than one point of view. *** Workshop Topics Each workshop subject will focus on new research challenges and initiatives in Web Intelligence (WI) and Intelligent Agent Technology (IAT). The workshops should provide an informal and vibrant forum for researchers and industry practitioners to share their research results and practical development experiences in these two fields. Suggested workshop topics include, but are not limited to: - Web Intelligence, Brain Informatics and Cognition-inspired Computing - Intelligent e-Technology (including e-Science, e-Business, e-Learning, e-Finance, e-Government, e-Community) - Intelligent Web Interaction - Knowledge Grids and Grid Intelligence - Semantics and Ontology Engineering - Social Networks and Social Intelligence - Web Agents - Web Information Filtering and Retrieval - Web Mining and Farming - Web Monitoring and Change - Web Personalization and Recommendations - Web Scale Reasoning - Web Security, Integrity, Privacy and Trust - Web Services and Grid Services - Web Support Systems - World Wide Wisdom Web (W4) - Intelligent Web Querying - Agent Systems Modeling and Methodology - Autonomous Knowledge and Information Agents - Autonomous Auctions and Negotiation - Autonomy-Oriented Computing (AOC) - Learning and Self-Adapting Agents - Agents and Data Mining Interaction - Multiagent Systems in e-Business *** Workshop Proposal Submission Workshop proposals should include the following elements: - Title of the workshop - The organizers name, affiliation, mailing address and e-mail address - A description of the topic of the workshop (not exceeding 200 words) - Type of the workshop (full-day or half-day) - A description of how the workshop will contribute to the field of Web Intelligence and/or Intelligent Agent Technology - A short description on how the workshop will be advertised so as to ensure a sufficiently wide range of authors and high quality papers - Optionally, only for full-day workshops, the title of a proposed panel, with a brief description highlighting the reasons of interest of the issues to be debated After the acceptance of a workshop proposal the organizer(s) should: - Create a Call for papers/participation for the workshop - Create a Web page for the workshop, the link of which will be published on the Conference Web site - Create a Board of Reviewers (Program Committee) - Review and select papers - Schedule the workshop activities. Those papers selected by a workshop organizer will also be reviewed by the Workshop Co-Chairs for final acceptance. All submitted papers will be reviewed on the basis of technical quality, relevance, significance, and clarity. We will provide an online paper submission and review system to support the workshops. *** Important Dates - Workshop proposal submission due: January 15, 2009 - Notification to workshop proposers: January 25, 2009 - Each Workshop Organizer Sends out Call for Workshops Papers: February 5, 2009 - Due date for full workshop papers submission (4 pages): April 30, 2009 - Final acceptance by Workshop Co-Chairs: June 10, 2009 - Notification of paper acceptance to authors: June 8, 2009 - Camera-ready of accepted papers: June 30, 2009 - Workshop day: September 15, 2009 *** Workshop proposal submissions The above described workshop proposals must be submitted via e-mail (workshops.wi.iat@gmail.com). We look forward to your support in making 2009 IEEE/WIC/ACM WI-IAT'09 workshops an exciting event. *** Workshop Co-Chairs: - Paolo Boldi, DSI, Universita' degli Studi di Milano (boldi [at> dsi.unimi.it) - Giuseppe Vizzari, DISCO, Universita' degli Studi di Milano Bicocca (vizzari [at> disco.unimib.it) From dons at galois.com Wed Dec 24 19:02:18 2008 From: dons at galois.com (Don Stewart) Date: Wed Dec 24 18:54:39 2008 Subject: [Haskell] ANNOUNCE: Cryptol now freely available Message-ID: <20081225000218.GE7532@scytale.galois.com> Galois is pleased to announce that Cryptol, the language of cryptography, is now available to the public! Cryptol is a domain specific language for the design, implementation and verification of cryptographic algorithms, developed over the past decade by Galois for the United States National Security Agency. It has been used successfully in a number of projects, and is also in use at Rockwell Collins, Inc. Cryptol is implemented in Haskell. Domain-specific languages (DSLs) allow subject-matter experts to design solutions in using familiar concepts and constructs. Cryptol, as a DSL, allows domain experts in cryptography to design and implement cryptographic algorithms with a high degree of assurance in the correctness of their design, and at the same time, producing a high performance implementation of their algorithms. In this release, Galois has made a implementation of the Cryptol language available free of charge for non-commercial uses. More information on the blog: http://www.galois.com/blog/2008/12/24/cryptol-the-language-of-cryptography-now-available/ And at http://www.cryptol.net Enjoy! From cjs at starling-software.com Thu Dec 25 01:17:38 2008 From: cjs at starling-software.com (Curt Sampson) Date: Thu Dec 25 01:09:53 2008 Subject: [Haskell] hsc2hs can't find gcc under windows Message-ID: <20081225061735.GB18861@smtp.office.cynic.net> I'm trying to upgrade from ghc 6.8.3 to 6.10.1. Unfortunately, there seem to be problems with the Windows version. (I've installed it on two different machines, both Windows XP, and they've both had the same problem. Both worked fine with 6.8.3.) When I run hsc2hs, on an hsc file, I get the error, "Can't find gcc". Just as an experiment, I tried adding c:\ghc\ghc-6.10.1 to my path. That lets it find gcc, but then it can't find cc1. If I go even further down this road and add c:\ghc\ghc-6.10.1\gcc-lib to my path, it can find cc1, but then I get a stream of errors about not being able to find header files, such as HsFFI.h. Does anybody have any clues here to help me? I can provide code, or even access to the machine, if needed. We're also happy to pay for support, if someone out there is offering commercial support for ghc. cjs -- Curt Sampson +81 90 7737 2974 Functional programming in all senses of the word: http://www.starling-software.com From byorgey at seas.upenn.edu Thu Dec 25 13:26:56 2008 From: byorgey at seas.upenn.edu (Brent Yorgey) Date: Thu Dec 25 13:19:23 2008 Subject: [Haskell] Haskell Weekly News: Issue 98 - December 25, 2008 Message-ID: <20081225182656.GA29345@seas.upenn.edu> --------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20081225 Issue 98 - December 25, 2008 --------------------------------------------------------------------------- Welcome to issue 98 of HWN, a newsletter covering developments in the [1]Haskell community. Happy holidays! An exciting HWN for you this week, including a number of cool new libraries, the [2]public release of [3]Cryptol, a [4]Haskell logo contest, and the [5]second most awesome GHC bug ever (see augustss's quote at the end of the Quotes section for the most awesome GHC bug ever). Announcements Hieroglyph 0.85. Jeff Heard [6]announced that the Thingie library has been renamed [7]Hieroglyph, and now has support for displaying images on the Cairo canvas. Cryptol now freely available. Don Stewart [8]announced that [9]Cryptol, the language of cryptography, is [10]now available to the public! Cryptol is a domain specific language for the design, implementation and verification of cryptographic algorithms, developed over the past decade by Galois for the United States National Security Agency. It has been used successfully in a number of projects, and is also in use at Rockwell Collins, Inc. Cryptol is implemented in Haskell. Control.Monad.IfElse. Jeff Heard [11]announced the [12]Control.Monad.IfElse module, which provides useful anaphoric and monadic versions of if-else and when. llvm-0.4.0.1. Lennart Augustsson [13]announced version 0.4.0.1 of the [14]release that is quite incompatible with the old 0.0.2 release.) Haskell LLVM bindings. LLVM is a virtual machine and the bindings allow you to generate code for this virtual machine. This code can then be executed by a JIT or written to a file for further processing by the LLVM tools. bytestring-trie 0.1.0. wren ng thornton [15]announced the release of [16]bytestring-trie 0.1.0, an efficient finite map from (byte)strings to values. The implementation is based on big-endian patricia trees, like Data.IntMap. RWH book club. Don Stewart [17]announced that Matt Podwysocki has set up a [18]Real World Haskell book club, a mailing list on google groups with already some 200 members discussing typical new user Haskell questions. Feel free to join if you like talking about Haskell, or teaching new users. Thingie-0.80. Jeff Heard [19]announced the release of [20]Thingie, a library for creating 2D visualizations in a purely functional manner. It supports static visualizations and animation, and like most vis libraries, can probably do games as well as simple viz graphics. typehash version 1.3. Lennart Augustsson [21]announced the release of the [22]typehash library, which allows you to produce a unique identifier (a cryptographic hash) for a type. This is useful if you save values of some type to a file (text, binary, whatever format you wish) and then when you read it back in again you want to verify that the type you want to read is the one you actually wrote. The library also supports type codes, which encode the complete structure of a type and can be used for finer comparison than just equality. uvector-algorithms 0.1. Dan Doel [23]announced the release of [24]uvector-algorithms, a library of algorithms (mostly sorting) for the mutable arrays defined in uvector. It has several varieties of sorting, including introsort (quicksort which falls back on heapsort in bad cases), heapsort, a simple top- down merge sort and a radix sort. Also exposed are the operations that allow you to use the arrays as heaps and a combinator for safely using these mutable array algorithms to sort immutable arrays. All algorithms have been painstakingly profiled and optimized. Data.List.Split. Brent Yorgey [25]announced the release of [26]Data.List.Split, which provides a wide range of strategies and a unified combinator framework for splitting lists with respect to some sort of delimiter. Hoogle with more libraries. Neil Mitchell [27]announced that [28]Hoogle will now search lots of the libraries present on hackage! HLint 1.0. Neil Mitchell [29]announced the re-release of [30]HLint, a tool for making suggestions to improve your Haskell code. Previously this tool was called Dr Haskell and depended on a working installation of Yhc; now it depends on GHC 6.10.1. rangemin-1.0. Louis Wasserman [31]announced the release of [32]rangemin, a library for efficiently preprocessing an array to find minimum elements of subranges of the array in constant time. Discussion length of module name affecting performance??. Daniel Gorin [33]reported a GHC bug where in certain cases, changing the name of a module to something longer results in a 2x-3x performance hit! Strange but true. Time for a new logo?. Don Stewart [34]proposed a competition to produce a new Haskell logo! Submissions should go on the [35]wiki page; the deadline for logo submissions is December 31. Pattern combinators. Andrew Wagner [36]started a thread turning a [37]paper on pattern-matching in Haskell into actual code for hackage. Coroutines. Ryan Ingram [38]posted some interesting code showing how to implement coroutines with session types. Type wildcards. Eyal Lotem [39]proposed a 'type wildcards' extension to the language. Blog noise [40]Haskell news from the [41]blogosphere. * Galois, Inc: [42]Cryptol, the language of cryptography, now available. * Dan Piponi (sigfpe): [43]The Mother of all Monads. * Real-World Haskell: [44]Pat Eyler Interviews the Real World Haskell Team. * Philip Wadler: [45]Unsafe. * Conrad Parker: [46]Release: HOgg 0.4.1. * ezekiel smithburg: [47]fast string appending/concatenation in haskell. * Brent Yorgey: [48]Data.List.Split. * Alson Kemp: [49]Turbinado: Implementing a poor-man's wiki. * Luke Palmer: [50]Reactive spaces. * Conal Elliott: [51]Smarter termination for thread racing. * Real-World Haskell: [52]RWH on Twitter. * >>> Muharem Hrnjadovic: [53]My new favourite book. * Alson Kemp: [54]Turbinado update. * Philip Wadler: [55]Type Safe Pattern Combinators, by Morten Rhiger. * Osfameron: [56]Crossword puzzles in Haskell. * Brent Yorgey: [57]QuickCheck rocks my socks. * >>> Matt Youell: [58]If programming languages were martial arts. * >>> Sebastian Fischer: [59]Haskell idioms I did not understand before hacking them on my own. * Alson Kemp: [60]Thinking about Haskell: You Know Lazy Evaluation; You Just Don't Know It. * >>> Brian McCallister: [61]Real World Haskell, for Jon. * Ivan Lazar Miljenovic: [62]RWH Arrives Down Under!. * >>> Thomas ten Cate: [63]XMonad with Ubuntu, dvorak, Pidgin and Skype. * >>> Jeremy Frens: [64]PE Problem #3 in All Languages. * Jeremy Shaw: [65]Data Migration with HApps-Data. * Chris Done: [66]Haskell Formlets: Composable web form construction and validation. * Real World Haskell: [67]Haskell around the world. * Dougal Stanton: [68]A brief look at fingertrees. Quotes of the Week * luqui: no!!! I was building a joke, but then I sent it before I thought of one. * roconnor: We put up a clothes line and made a turing machine by hand at a party once ... that is the sort of parties I go to. * cjs: In what other language could I have learned so much about Win32 programming (summary: basically, the Windows 3.0 API but with all sorts of hacks to deal with having more than one thread in the system), and come out having *enjoyed* myself? Praise to the Lord! * PaulJohnson: A paradox of the Haskell world is that, while the language is Vulcan, the community around it is dominated by Warm Fuzziness. Clearly the two are not mutually exclusive. * Botje: Caleskell even has unsafeSolveHaltingProblem? * Taejo: * Taejo needs to write Sitar Hero in Yampa * dons: it is safer for incompetent people to be working in Haskell than C++. * mpeter: the quality of my code increased drastically when i realized i should stop telling the computer to do things which were stupid. * byorgey: RandomT/Random are effectively state monads. (in fact, they're thin candy shells around StateT/State.) "newtype: melts in the compiler, not in your hands" * quicksilver: [on classes having the same name as constructs in other languages] it's like having a laxative called "after dinner mint", and people being upset when they were looking for something nice to eat after dinner. * quicksilver: #haskell is a loquacracy! * quicksilver: It's also the same thing as the Yoneda lemma. That's the thing about maths. Everything is actually the same. * hugo: i feel like i was drugged with imperative programming, and now im in rehab. * chrisdone: yo dawg we heard you like haskell so we installed a lambdabot in your ghci so you can monad while you monad * augustss: ghc had a bug once where it deleted the source file if it had a type error. Quite sensible, I think. About the Haskell Weekly News New editions are posted to [69]the Haskell mailing list as well as to [70]the Haskell Sequence and [71]Planet Haskell. [72]RSS is also available, and headlines appear on [73]haskell.org. To help create new editions of this newsletter, please see the information on [74]how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get [75]http://code.haskell.org/~byorgey/code/hwn/ . References 1. http://haskell.org/ 2. http://www.galois.com/blog/2008/12/24/cryptol-the-language-of-cryptography-now-available/ 3. http://www.cryptol.net/ 4. http://haskell.org/haskellwiki/Haskell_logos/New_logo_ideas 5. http://thread.gmane.org/gmane.comp.lang.haskell.glasgow.user/16037 6. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49528 7. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hieroglyph 8. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49516 9. http://www.cryptol.net/ 10. http://www.galois.com/blog/2008/12/24/cryptol-the-language-of-cryptography-now-available/ 11. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49365 12. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/IfElse 13. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49340 14. file://localhost/home/brent/hacking/hwn/(This 15. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49234 16. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/bytestring-trie 17. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49168 18. http://groups.google.com/group/real-world-haskell-book-club 19. http://article.gmane.org/gmane.comp.lang.haskell.cafe/49147 20. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Thingie 21. http://article.gmane.org/gmane.comp.lang.haskell.cafe/48902 22. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/typehash 23. http://article.gmane.org/gmane.comp.lang.haskell.cafe/48889 24. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/uvector%2Dalgorithms 25. http://article.gmane.org/gmane.comp.lang.haskell.general/16700 26. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/split 27. http://article.gmane.org/gmane.comp.lang.haskell.general/16698 28. http://haskell.org/hoogle 29. http://article.gmane.org/gmane.comp.lang.haskell.general/16692 30. http://www-users.cs.york.ac.uk/~ndm/hlint/ 31. http://article.gmane.org/gmane.comp.lang.haskell.general/16686 32. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/rangemin 33. http://thread.gmane.org/gmane.comp.lang.haskell.glasgow.user/16037 34. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/48892 35. http://haskell.org/haskellwiki/Haskell_logos/New_logo_ideas 36. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/49267 37. http://www.itu.dk/people/mir/typesafepatterns.pdf 38. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/49108 39. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/48987 40. http://planet.haskell.org/ 41. http://haskell.org/haskellwiki/Blog_articles 42. http://www.galois.com/blog/2008/12/24/cryptol-the-language-of-cryptography-now-available/ 43. http://sigfpe.blogspot.com/2008/12/mother-of-all-monads.html 44. http://www.realworldhaskell.org/blog/2008/12/24/pat-eyler-interviews-the-real-world-haskell-team/ 45. http://wadler.blogspot.com/2008/12/unsafe.html 46. http://blog.kfish.org/2008/12/release-hogg-041.html 47. http://tehgeekmeister.wordpress.com/2008/12/22/fast-string-appendingconcatenation-in-haskell/ 48. http://byorgey.wordpress.com/2008/12/21/datalistsplit/ 49. http://www.alsonkemp.com/haskell/turbinado-implementing-a-poor-mans-wiki/ 50. file://localhost/home/brent/hacking/hwn/20081225.html 51. http://conal.net/blog/posts/smarter-termination-for-thread-racing/ 52. http://www.realworldhaskell.org/blog/2008/12/18/rwh-on-twitter/ 53. http://muharem.wordpress.com/2008/12/18/my-favourite-book/ 54. http://www.alsonkemp.com/haskell/turbinado-update/ 55. http://wadler.blogspot.com/2008/12/type-safe-pattern-combinators.html 56. http://greenokapi.net/blog/2008/12/18/crossword-puzzles-in-haskell/ 57. http://byorgey.wordpress.com/2008/12/16/quickcheck-rocks-my-socks/ 58. http://www.youell.com/matt/writing/?p=46 59. http://www-ps.informatik.uni-kiel.de/~sebf/projects/haskell-idioms-i-did-not-understand-before-hacking-them-on-my-own.html 60. http://www.alsonkemp.com/?p=110 61. http://kasparov.skife.org/blog/src/haskell/real-world-haskell-for-jon.html 62. http://ivanmiljenovic.wordpress.com/?p=30 63. http://typethinker.blogspot.com/2008/12/xmonad-with-ubuntu-dvorak-pidgin-and.html 64. http://jdfrens.blogspot.com/2008/12/pe-problem-3-in-all-languages.html 65. http://nhlab.blogspot.com/2008/12/data-migration-with-happs-data.html 66. http://chrisdone.com/blog/2008/12/14/Haskell-Formlets:-Composable-web-form-construction-and-validation 67. http://www.realworldhaskell.org/blog/?p=154 68. http://www.dougalstanton.net/blog/index.php/2008/12/12/a-brief-look-at-fingertrees/ 69. http://www.haskell.org/mailman/listinfo/haskell 70. http://sequence.complete.org/ 71. http://planet.haskell.org/ 72. http://sequence.complete.org/node/feed 73. http://haskell.org/ 74. http://haskell.org/haskellwiki/HWN 75. http://code.haskell.org/~byorgey/code/hwn/ From jake at pikewerks.com Fri Dec 26 14:14:04 2008 From: jake at pikewerks.com (Jake McArthur) Date: Fri Dec 26 14:06:14 2008 Subject: [Haskell] Haskell Weekly News: Issue 98 - December 25, 2008 In-Reply-To: <20081225182656.GA29345@seas.upenn.edu> References: <20081225182656.GA29345@seas.upenn.edu> Message-ID: <49552CFC.4090201@pikewerks.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Brent Yorgey wrote: > 50. file://localhost/home/brent/hacking/hwn/20081225.html :( -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAklVLPgACgkQye5hVyvIUKk2AQCgmAY7MzRSIH8ApdvhiY/OX2UM 2RoAnj1awBiYWhagOl2Xk2jLkrtju5IZ =yJbh -----END PGP SIGNATURE----- From andrea.rossato at unitn.it Sat Dec 27 16:12:19 2008 From: andrea.rossato at unitn.it (andrea rossato) Date: Sat Dec 27 16:04:30 2008 Subject: [Haskell] ANNOUNCE: hs-bibutils-0.1 Message-ID: <20081227211219.GA14161@Andrea.Nowhere.net> Hello, I'm happy to announce the first release of hs-bibutils, the Haskell bindings to Chris Putnam's bibutils.[1] Bibutils is a library and a set of bibliographic utilities to interconvert between various bibliography database formats using a common MODS-format XML intermediate. hs-bibutils is meant to provide to citeproc-hs, and indirectly to pandoc, the ability to parse all the bibliographic database formats supported by bibutils. citeproc-hs[2] is a Haskell implementation of the Citation Style Language. It adds to pandoc a Bibtex like citation and bibliographic formatting and generation facility. DOWNLOADS hs-bibutils can be downloaded from Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hs-bibutils The project home page can be found here: http://code.haskell.org/hs-bibutils/ INSTALLATION AND KNOWN ISSUES bibutils builds, without installing it, a static library to be used to compile the various converting utilities. But in order to use the library with pandoc (or ghci) it is necessary to create and install a shared object before building and installing hs-bibutils. hs-bibutils provides a patch to the bibutils building scripts to enable the shared object creation and installation. Alternatively a patched version of the latest release of bibutils can be downloaded from the project home page, where all the needed information for the installation are provided: http://code.haskell.org/hs-bibutils/#installation I was able to test the patched building scripts only on a Linux machine with a x86 system. Please report me any success or failure on other systems/architectures. BUG REPORTS To submit bug reports you can either contact me directly or use the citeproc-hs bug tracking system available at the following address: http://code.google.com/p/citeproc-hs/issues Hope you'll enjoy, Andrea Rossato [1] http://www.scripps.edu/~cdputnam/software/bibutils/ [2] http://code.haskell.org/citeproc-hs/ From andrea.rossato at unitn.it Sat Dec 27 16:15:17 2008 From: andrea.rossato at unitn.it (andrea rossato) Date: Sat Dec 27 16:07:26 2008 Subject: [Haskell] ANNOUNCE: citeproc-hs-0.2 Message-ID: <20081227211517.GE14161@Andrea.Nowhere.net> Hello, I'm happy to announce the release of citeproc-hs-0.2. WHAT'S NEW 1. Added support for citation collapsing options. This fills the last major gap to a usable CSL implementation; 2. added a wrapper around hs-bibutils[1] (disabled by default). By installing hs-bibutils and linking citeproc-hs to it with the '-fbibutils' configuration flag, it is possible to read all the bibliographic databases supported by bibutils[2]; 3. added some haddock API documentation: http://code.haskell.org/citeproc-hs/docs/ 4. simplified and started to document the internals of the library. DOWNLOADS citeproc-hs can be downloaded from Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/citeproc-hs ABOUT citeproc-hs is a Haskell implementation of the Citation Style Language. It adds to pandoc, the famous Haskell text processing tool, a Bibtex like citation and bibliographic formatting and generation facility. The Citation Style Language (CSL) is an XML language for specifying citation and bibliographic formatting, similar in principle to BibTeX .bst files or the binary style files in commercial products like Endnote or Reference Manager. CSL is used by Zotero for bibliographic style formatting, and a huge number of CSL styles have been developed by the Zotero community. More information, with installation instructions, can be found here: http://code.haskell.org/citeproc-hs/ Hope you'll enjoy, Andrea Rossato [1] http://code.haskell.org/hs-bibutils/ [2] http://www.scripps.edu/~cdputnam/software/bibutils/ From gjk.liu at gmail.com Sun Dec 28 22:20:34 2008 From: gjk.liu at gmail.com (Liu Jian) Date: Sun Dec 28 22:12:34 2008 Subject: [Haskell] about Data.BinaryTree In-Reply-To: <8c2dc7030812281911iee80fc2n40e27a53b1919e92@mail.gmail.com> References: <8c2dc7030812281911iee80fc2n40e27a53b1919e92@mail.gmail.com> Message-ID: <8c2dc7030812281920t63062498l4f699c42bd214bab@mail.gmail.com> Hi All, Is there any implementation of binary tree in haskell library? for example, "insert lookup empty adjust isEmpty delete" operators in it. cheers, Liu Jian ---- email to: gjk.liu@gmail.com From jonathanccast at fastmail.fm Sun Dec 28 22:22:39 2008 From: jonathanccast at fastmail.fm (Jonathan Cast) Date: Sun Dec 28 22:14:40 2008 Subject: [Haskell] about Data.BinaryTree In-Reply-To: <8c2dc7030812281920t63062498l4f699c42bd214bab@mail.gmail.com> References: <8c2dc7030812281911iee80fc2n40e27a53b1919e92@mail.gmail.com> <8c2dc7030812281920t63062498l4f699c42bd214bab@mail.gmail.com> Message-ID: <1230520959.6019.0.camel@jonathans-macbook> On Mon, 2008-12-29 at 11:20 +0800, Liu Jian wrote: > Hi All, > > Is there any implementation of binary tree in haskell library? > for example, > "insert lookup empty adjust isEmpty delete" operators in it. Data.Set is implemented using ordered balanced binary trees. Is that what you mean? jcc From koen at chalmers.se Mon Dec 29 13:31:28 2008 From: koen at chalmers.se (Koen Claessen) Date: Mon Dec 29 13:23:27 2008 Subject: [Haskell] Two Positions as Associate Professor in Software Engineering at Chalmers University Message-ID: <1b30d3c80812291031s265f66c0r6757311ed6085905@mail.gmail.com> There are two positions as Associate Professor available at Chalmers University in Gothenburg, Sweden, within the division of Software Engineering and Technology at the department of Computer Science and Engineering. For further information, please read the following web page: http://www.chalmers.se/cse/EN/news/vacancies/positions/two-positions-as The application deadline is January 12, 2009. Happy New Year! -- Koen Claessen From nedunuri at cs.utexas.edu Mon Dec 29 15:07:36 2008 From: nedunuri at cs.utexas.edu (Srinivas Nedunuri) Date: Mon Dec 29 15:02:54 2008 Subject: [Haskell] Haskell profiler Message-ID: Could someone tell me what the expected accuracy of the Haskell profiler is? I get quite widely varying results for the amount of time spent on a given function across different runs (eg one random example, from 1.5% to 10%). I even upped the size of the dataset in an attempt to increase the accuracy. Also a related q: why doesnt't the time spent in putStr show up? cheers