From david.waern at gmail.com Thu May 1 09:42:19 2008 From: david.waern at gmail.com (David Waern) Date: Thu May 1 09:36:50 2008 Subject: [Haskell] ANN: Haddock version 2.1.0 Message-ID: Hi everyone, I'm pleased to announce Haddock 2.1.0. Hackage page: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/haddock-2.1.0 Changes since last version: * Fix a bug that made links point to the defining module instead of the "best" one (e.g Int pointing to GHC.Base instead of Data.Int) * Fix a couple of smaller bugs * The representation of DocName was changed in the library * Add a flag --no-warnings for turning off warnings David From gwern0 at gmail.com Thu May 1 15:06:25 2008 From: gwern0 at gmail.com (Gwern Branwen) Date: Thu May 1 15:03:20 2008 Subject: [Haskell] Re: [Haskell-cafe] ANN: Haddock version 2.1.0 In-Reply-To: References: Message-ID: <20080501190625.GB474@localhost> On 2008.05.01 15:42:19 +0200, David Waern scribbled 0.5K characters: > Hi everyone, > > I'm pleased to announce Haddock 2.1.0. > > Hackage page: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/haddock-2.1.0 > > Changes since last version: > > * Fix a bug that made links point to the defining module instead > of the "best" one (e.g Int pointing to GHC.Base instead of Data.Int) > > * Fix a couple of smaller bugs > > * The representation of DocName was changed in the library > > * Add a flag --no-warnings for turning off warnings > > David Out of curiosity: does this release fix the 'type'/--^ bug? I know I kept running into it on well-documented projects. -- gwern package Yakima Tzvrif Knife Tony Weekly Bob HRT TOS DJC -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://www.haskell.org/pipermail/haskell/attachments/20080501/d4121dd6/attachment.bin From david.waern at gmail.com Thu May 1 16:43:45 2008 From: david.waern at gmail.com (David Waern) Date: Thu May 1 16:38:13 2008 Subject: [Haskell] Re: [Haskell-cafe] ANN: Haddock version 2.1.0 In-Reply-To: <20080501190625.GB474@localhost> References: <20080501190625.GB474@localhost> Message-ID: No it doesn't, but it's on the TODO list. It needs a fix in GHC. By the way, I'm going to experiment with doing the parsing of comments on the Haddock side instead of in GHC. If that works out, we won't have to fix these things in GHC anymore. If anyone wants to help out with Haddock, the darcs repository is at http://code.haskell.org/haddock David 2008/5/1 Gwern Branwen : > On 2008.05.01 15:42:19 +0200, David Waern scribbled 0.5K characters: > > > > Hi everyone, > > > > I'm pleased to announce Haddock 2.1.0. > > > > Hackage page: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/haddock-2.1.0 > > > > Changes since last version: > > > > * Fix a bug that made links point to the defining module instead > > of the "best" one (e.g Int pointing to GHC.Base instead of Data.Int) > > > > * Fix a couple of smaller bugs > > > > * The representation of DocName was changed in the library > > > > * Add a flag --no-warnings for turning off warnings > > > > David > > Out of curiosity: does this release fix the 'type'/--^ bug? I know I kept running into it on well-documented projects. > > -- > gwern > package Yakima Tzvrif Knife Tony Weekly Bob HRT TOS DJC > From dominic.steinitz at blueyonder.co.uk Sat May 3 12:09:47 2008 From: dominic.steinitz at blueyonder.co.uk (Dominic Steinitz) Date: Sat May 3 12:04:07 2008 Subject: [Haskell] www.haskell.org Problem? Message-ID: <481C8E4B.7040807@blueyonder.co.uk> I'm doing darcs get http://www.haskell.org/crypto at the moment but it's just hanging. Is there a problem on the server? Thanks, Dominic. From jake.mcarthur at gmail.com Sat May 3 12:36:45 2008 From: jake.mcarthur at gmail.com (Jake Mcarthur) Date: Sat May 3 12:31:04 2008 Subject: [Haskell] www.haskell.org Problem? In-Reply-To: <481C8E4B.7040807@blueyonder.co.uk> References: <481C8E4B.7040807@blueyonder.co.uk> Message-ID: <4E9B8307-A78F-4979-B46F-BEF94EDD3704@gmail.com> On May 3, 2008, at 11:09 AM, Dominic Steinitz wrote: > Is there a problem on the server? I appears that all of haskell.org is down. - Jake From Tillmann.Vogt at rwth-aachen.de Sat May 3 14:57:04 2008 From: Tillmann.Vogt at rwth-aachen.de (Tillmann Vogt) Date: Sat May 3 14:52:27 2008 Subject: [Haskell] Matrix multiplication In-Reply-To: References: Message-ID: <481CB580.9030905@rwth-aachen.de> Hi, Thanks for all your nice replies. I did this matrix-multiplication experiment for a seminar on multithreading where I have to give a talk on Unified Parallel C. At first I thought I should not mention haskell as an alternative because of the speed. But now I might do some slides about the advantages/(disadvantages?) of side-effekt free languages, maybe ndp. In my opinion these C extension are not a nice solution. Unified Parallel C parallelizes only for-loops and distributes the workload by uniformly cutting an array in pieces and then setting an "affinity" so that a CPU works on that data. The trick they are really proud of is that the compiler knows in this way where to put the data in a NUMA-system (Non-Uniform Memory Architecture). I am not really sure if this language extension can cope with programs where pieces need considerably different calulation times. I forgot to mention that I used ghc 6.8.2 and sorry for that stupid example (a had to take something that fits on a presentation-slide). Cheers, Tillmann Don Stewart schrieb: > The other thing here is that he's using unboxed, nested arrays in C, > while using naive lists in Haskell. > > To actually compare them, you'd need to use nested STUArrays. > > Hopefully we'll have a library for these soon (as a result of the ndp > lib). Otherwise, use on one of the matrix libraries (hmatrix/ > gslhaskell) > > For non-nested arrays, we can do rather well with: > > import Data.Array.Vector > > n :: Int > n = 4000 > > main = print (sumU (zipWithU (*) a b)) > where > a = replicateU n (2::Double) > b = mapU realToFrac $ enumFromToU 0 (n-1) > > Which compiles to some nicely fused unboxed loops. > > The trick is to get this working with nested arrays. > The ndp library looks like our best bet here: > > darcs.haskell.org/packages/ndp > > > -- Don > > tim: >> On Thu, 24 Apr 2008 04:01:50 Tillmann Vogt wrote: >>> Hi, >>> >>> I am currently experimenting with parallelizing C-programs. I have >>> therefore written a matrix vector multiplication example that needs 13 >>> seconds to run (5 seconds with OpenMP). Because I like Haskell I did the >>> same in this language, but it takes about 134 seconds. Why is it so >>> slow? Does someone have an idea? >>> >>> >>> module Main where >>> >>> main = do putStrLn (show (stupid_mul 100)) >>> putStrLn "100 multiplications done" >>> >>> stupid_mul 0 = [] >>> stupid_mul it = (s_mul it) : stupid_mul (it-1) -- without "it" after >>> s_mul only one multiplication is executed >>> >>> s_mul it = mul (replicate 4000 [0..3999]) (replicate 4000 2) >>> >>> mul :: [[Double]] -> [Double] -> [Double] >>> mul [] _ = [] >>> mul (b:bs) c | sp==0 = sp : (mul bs c) -- always false, force evaluation >>> >>> | otherwise = (mul bs c) >>> >>> where sp = (scalar b c) >>> >>> scalar :: [Double] -> [Double] -> Double >>> scalar _ [] = 0 >>> scalar [] _ = 0 >>> scalar (v:vs) (w:ws) = (v*w) + (skalar vs ws) >>> >>> >>> >>> and here the C-program >>> >>> #include >>> #include >>> #include >>> >>> #define M 4000 >>> #define N 4000 >>> #define IT 100 >>> >>> double a[M], b[M][N], c[N]; >>> >>> int main(int argc, char *argv[]) >>> { >>> double d; >>> int i, j, l; >>> time_t start,end; >>> >>> printf("Initializing matrix B and vector C\n"); >>> for(j=0; j>> for(i=0; i>> >>> printf("Executing %d matrix mult. for M = %d N = %d\n",IT,M,N); >>> time (&start); >>> >>> for(l=0; l>> >>> #pragma omp parallel for default(none) \ >>> shared(a,b,c) private(i,j,l) >>> >>> for(i=0; i>> { >>> a[i] = 0.0; >>> for (j=0; j>> } >>> time (&end); >>> >>> d = difftime (end,start); >>> printf ("calculation time: %.2lf seconds\n", d ); >>> return 0; >>> } >>> _______________________________________________ >>> Haskell mailing list >>> Haskell@haskell.org >>> http://www.haskell.org/mailman/listinfo/haskell >> You haven't even told us which compilers you're using so it's pretty difficult >> to do. I can't even get your code to compile - there are typos in it so >> you've obviously altered it since compiling yourself. >> >> While this program may be wrong, I've dashed off this attempt that takes about >> 1.3 seconds on my not-too-powerful machine: >> >> module Main >> where >> >> import Control.Monad >> >> rows = 4000 >> cols = 4000 >> iterations = 100 >> >> main = do >> let >> vector :: [Double] >> vector = replicate cols 2.0 >> matrix :: [[Double]] >> matrix = replicate rows (map fromIntegral [0..cols-1]) >> a = map (sum . (zipWith (*) vector)) matrix >> replicateM_ iterations (putStrLn (show a)) >> >> Those who understand how Haskell programs are executed will now be >> screaming "cheating!". This program when optimised by GHC (which I use) will >> only actually do the calculation once and print it 100 times. That is, after >> all, the same output you asked for. It may even be taking more shortcuts >> using identities around map and replicate but I'm not sure. >> >> When mapping imperative languages to functional ones a little understanding of >> how it is executed goes a long way. Performance of your programs will benefit >> immensely if you know how your program will be run. I'm new to Haskell but >> have already realised that performance can be altered by orders of magnitude >> by making possible optimisations more visible to the compiler with how things >> are set out. >> >> P.S. I would really recommend increasing use of higher level functions such as >> map. They make code much more readable and the most common also receive >> special optimisations from many compilers. >> >> Cheers, >> >> Tim >> _______________________________________________ >> Haskell mailing list >> Haskell@haskell.org >> http://www.haskell.org/mailman/listinfo/haskell > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell From dons at galois.com Sat May 3 15:03:59 2008 From: dons at galois.com (Don Stewart) Date: Sat May 3 14:58:21 2008 Subject: [Haskell] Matrix multiplication In-Reply-To: <481CB580.9030905@rwth-aachen.de> References: <481CB580.9030905@rwth-aachen.de> Message-ID: <20080503190359.GB13987@scytale.galois.com> Tillmann.Vogt: > Hi, > > Thanks for all your nice replies. I did this matrix-multiplication > experiment for a seminar on multithreading where I have to give a talk > on Unified Parallel C. At first I thought I should not mention haskell > as an alternative because of the speed. But now I might do some slides > about the advantages/(disadvantages?) of side-effekt free languages, > maybe ndp. In my opinion these C extension are not a nice solution. > Unified Parallel C parallelizes only for-loops and distributes the > workload by uniformly cutting an array in pieces and then setting an > "affinity" so that a CPU works on that data. The trick they are really This sounds very similar to nested data parallelism, so probably worth talking about. http://haskell.org/haskellwiki/Data_Parallel_Haskell The key trick is that instead of only knowing how to parallelise (pure) for-loops, a whole suite of combinators can be parallelised, and on nested structures. So, quite promising. > proud of is that the compiler knows in this way where to put the data in > a NUMA-system (Non-Uniform Memory Architecture). I am not really sure if > this language extension can cope with programs where pieces need > considerably different calulation times. Interesting. > I forgot to mention that I used ghc 6.8.2 and sorry for that stupid > example (a had to take something that fits on a presentation-slide). -- Don From monnier at iro.umontreal.ca Mon May 5 04:14:24 2008 From: monnier at iro.umontreal.ca (Stefan Monnier) Date: Mon May 5 04:08:52 2008 Subject: [Haskell] Re: How to define tail function for Even/Odd GADT lists? References: <480F9D02.3090406@gmail.com> Message-ID: > However, we were not able to write a function that returns the tail. >> tailList :: Flip b c => List a b -> List a c >> tailList (Cons _ xs) = xs The problem here is that the caller will probably not know which "Flip b c". OTOH the Cons of type "List a b" already contains a "Flip b c" proof, so you really don't need to receive it. Of course, in order to be able to write "List a c" you still need to introduce a "c" variable somewhere. This should be done as follows: tailList: List a b -> (Flip b c => List a c) -- Stefan From colin at cs.york.ac.uk Tue May 6 07:38:24 2008 From: colin at cs.york.ac.uk (Colin Runciman) Date: Tue May 6 07:35:28 2008 Subject: [Haskell] ANN: SmallCheck 0.3 Message-ID: <48204330.9060403@cs.york.ac.uk> SmallCheck 0.3: another lightweight testing library in Haskell -------------------------------------------------------------- A new version of SmallCheck can be obtained from: http://www.cs.york.ac.uk/fp/smallcheck0.3.tar Main differences from 0.2: * existential quantifiers now have unique variants for which two witnesses are reported when uniqueness fails; * the over-generating coseries method for functions of functional arguments has been replaced; * additional examples; * test counters are now Integers, not Ints! SmallCheck is similar to QuickCheck (Claessen and Hughes 2000-) but instead of testing for a sample of randomly generated values, SmallCheck tests properties for all the finitely many values up to some depth, progressively increasing the depth used. Folk-law: if there is any case in which a program fails, there is almost always a simple one. Corollary: if a program does not fail in any simple case, it almost never fails. Other possible sales pitches: * write test generators for your own types more easily * be sure any counter-examples found are minimal * write properties using existentials as well as universals * establish complete coverage of a defined test-space * display counter-examples of functional type Comments and suggestions welcome. Colin Runciman From matthew at wellquite.org Tue May 6 08:04:51 2008 From: matthew at wellquite.org (Matthew Sackman) Date: Tue May 6 07:59:00 2008 Subject: [Haskell] ANNOUNCE: Sessions 2008.5.2 Message-ID: <20080506120451.GD27635@arkansas.doc.ic.ac.uk> Howdy, I'm pleased to announce the general availability of Session Types for Haskell, version 2008.5.2. It is available from my website[0], Hackage[1][2] and I've just updated the online tutorial[3] to take into account the recent changes and new features. [0] http://wellquite.org/non-blog/sessions-2008.5.2.tar.gz [1] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/sessions-2008.5.2 [2] http://hackage.haskell.org/ [3] http://wellquite.org/sessions/tutorial_1.html Session types are a means of describing communication between multiple threads, and statically verifying that the communication being performed is safe and conforms to the specification. The library supports multiple, concurrent channels being open and actions upon those channels being interleaved; forking new threads; the communication of process IDs, allowing threads to establish new channels between each other; higher-order channels, allowing an established channel to be sent over a channel to another process; and many other features common to session type systems. The significant new changes in this version are: a) an entirely new means to specify session types. This removes the old absolute indexing, is composeable and far more flexible and powerful than the old system. b) support for higher-order channels and session types allowing channels to be sent and received. This permits additional communication patterns such as two threads which are otherwise unaware of each other being able to communicate with one another by sending and receiving a channel via a common third party - delegation. Tests[4] and an example application[5] are available which should, in combination with the tutorial[6], explain how session types can be used. As ever, any feedback is very gratefully received. [4] http://wellquite.org/non-blog/sessions-browseable/Control/Concurrent/Session/Tests.hs [5] http://wellquite.org/non-blog/sessions-browseable/Control/Concurrent/Session/Queens.hs [6] http://wellquite.org/sessions/tutorial_1.html Matthew From dons at galois.com Tue May 6 16:20:54 2008 From: dons at galois.com (Don Stewart) Date: Tue May 6 16:15:22 2008 Subject: [Haskell] ANN: SmallCheck 0.3 In-Reply-To: <48204330.9060403@cs.york.ac.uk> References: <48204330.9060403@cs.york.ac.uk> Message-ID: <20080506202054.GE2246@scytale.galois.com> colin: > SmallCheck 0.3: another lightweight testing library in Haskell > -------------------------------------------------------------- > > A new version of SmallCheck can be obtained from: > > http://www.cs.york.ac.uk/fp/smallcheck0.3.tar Colin, is there any chance smallcheck could be cabalised and placed on hackage.haskell.org? There are a number of benefits if this is done, not least are the ability to use 'cabal install' to install the package, and the ability to specify the smallcheck requirement in any packages that use it. Cheers, Don From wss at Cs.Nott.AC.UK Wed May 7 06:42:22 2008 From: wss at Cs.Nott.AC.UK (Wouter Swierstra) Date: Wed May 7 06:38:56 2008 Subject: [Haskell] The Monad.Reader (11) - Call for Copy Message-ID: Call for Copy The Monad.Reader - Issue 11 Please consider writing something for the next issue of The Monad.Reader. The deadline for Issue 11 is ** August 1, 2008 ** It doesn't matter if you're a respected researcher or if you have only just started learning Haskell, get your thoughts together and write an article for The Monad.Reader! The Monad.Reader is a electronic magazine about all things Haskell. It is less formal than journal, but more enduring than a wiki-page or blog. There have been a wide variety of articles, including: exciting code fragments, intriguing puzzles, book reviews, tutorials, and even half-baked research ideas. * Submission Details * Get in touch with me if you intend to submit something -- the sooner you let me know what you're up to, the better. Please submit articles for the next issue to me by e-mail (wss at cs.nott.ac.uk). Articles should be written according to the guidelines available from http://www.haskell.org/haskellwiki/The_Monad.Reader Please submit your article in PDF, together with any source files you used. The sources will be released together with the magazine under a BSD license. If you would like to submit an article, but have trouble with LaTeX please let me know and we'll sort something out. All the best, Wouter This message has been checked for viruses but the contents of an attachment may still contain software viruses, which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. From icfp.publicity at googlemail.com Thu May 8 15:01:54 2008 From: icfp.publicity at googlemail.com (Matthew Fluet (ICFP Publicity Chair)) Date: Thu May 8 14:55:57 2008 Subject: [Haskell] Workshop on Generic Programming: Call for Papers (co-located w/ ICFP08) Message-ID: <53ff55480805081201t7e8e557fo11d29e9abc14c432@mail.gmail.com> CALL FOR PAPERS Workshop on Generic Programming 2008 Victoria, Canada, 20th September 2008 http://www.comlab.ox.ac.uk/ralf.hinze/wgp2008/cfp.{html,pdf,ps,txt} The Workshop on Generic Programming is sponsored by ACM SIGPLAN and forms part of ICFP 2008. Previous Workshops on Generic Programming have been held in Marstrand (affiliated with MPC), Ponte de Lima (affiliated with MPC), Nottingham (informal workshop), Dagstuhl (IFIP WG2.1 Working Conference), Oxford (informal workshop), Utrecht (informal workshop), and Portland (affiliated with ICFP). Scope ----- Generic programming is about making programs more adaptable by making them more general. Generic programs often embody non-traditional kinds of polymorphism; ordinary programs are obtained from them by suitably instantiating their parameters. In contrast with normal programs, the parameters of a generic program are often quite rich in structure; for example they may be other programs, types or type constructors, class hierarchies, or even programming paradigms. Generic programming techniques have always been of interest, both to practitioners and to theoreticians, but only recently have generic programming techniques become a specific focus of research in the functional and object-oriented programming language communities. This workshop will bring together leading researchers in generic programming from around the world, and feature papers capturing the state of the art in this important emerging area. We welcome contributions on all aspects, theoretical as well as practical, of o adaptive object-oriented programming, o aspect-oriented programming, o component-based programming, o generic programming, o meta-programming, o polytypic programming, o programming with modules, and so on. Submission details ------------------ Deadline for submission: 30th June 2008 Notification of acceptance: 14th July 2008 Final submission due: 28th July 2008 Workshop: 20th September 2008 Authors should submit papers, in PostScript or PDF format, formatted for A4 paper, to Ralf Hinze (ralf.hinze@comlab.ox.ac.uk) or Don Syme (Don.Syme@microsoft.com) by 30th June 2008. The length should be restricted to 12 pages in standard (two-column, 9pt) ACM. Accepted papers are published by the ACM and will additionally appear in the ACM digital library. Programme committee ------------------- Ralf Hinze (co-chair) University of Oxford Patrik Jansson Chalmers University Andrew Lumsdaine Indiana University Conor McBride University of Nottingham Adriaan Moors Universiteit Leuven Fritz Ruehr Willamette University Tim Sheard Portland State University Don Syme (co-chair) Microsoft Research Todd Veldhuizen University of Waterloo From weiyuan.cai at gmail.com Thu May 8 15:10:08 2008 From: weiyuan.cai at gmail.com (Wei Yuan Cai) Date: Thu May 8 15:04:10 2008 Subject: [Haskell] [Haskell-cafe] Help with polymorphic functions Message-ID: Hello, I'm having some trouble with a polymorphic function using another polymorphic function within. A simplified code of what I'm trying to do is as follows: main = print $ test 1 8 test :: a -> Int -> a test x n = shift x n I get the following compilation error: Could not deduce (Data.Bits.Bits a) from the context () arising from a use of `shift' at test.hs:8:11-19 Possible fix: add (Data.Bits.Bits a) to the context of the type signature for `test' In the expression: shift x n In the definition of `test': test x n = shift x n shift is defined as "a -> Int -> a" What am I doing wrong here? Thanks, Weiyuan -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20080509/cb9eee25/attachment.htm From rmm-haskell at z.odi.ac Thu May 8 15:34:53 2008 From: rmm-haskell at z.odi.ac (Ross Mellgren) Date: Thu May 8 15:28:56 2008 Subject: [Haskell] [Haskell-cafe] Help with polymorphic functions In-Reply-To: References: Message-ID: You gave test a type signature which gives "a" universal quantification, which means in this case that "a" is something, but you can't do anything in particular to it (since you don't know anything about it). shift has the signature a -> Int -> a, but it's within the type class Bits: Prelude> import Data.Bits Prelude Data.Bits> :i shift class (Num a) => Bits a where ... shift :: a -> Int -> a ... -- Defined in Data.Bits infixl 8 shift So in this case, "a" is actually the "a" from "Bits a" above. Your function, test, does not say that "a" is a bits, and that's what the compiler is telling you. Change your type signature to shift :: Bits a => a -> Int -> a and it should be good to go! -Ross P.S. I'm something of a haskell newbie, so if I got any of this wrong, please someone more knowledgeable correct me! On May 8, 2008, at 3:10 PM, Wei Yuan Cai wrote: > Hello, > > I'm having some trouble with a polymorphic function using another > polymorphic function within. A simplified code of what I'm trying to > do is as follows: > > main = print $ test 1 8 > > test :: a -> Int -> a > test x n = shift x n > > I get the following compilation error: > > Could not deduce (Data.Bits.Bits a) from the context () > arising from a use of `shift' at test.hs:8:11-19 > Possible fix: > add (Data.Bits.Bits a) to the context of > the type signature for `test' > In the expression: shift x n > In the definition of `test': test x n = shift x n > > > shift is defined as "a -> Int -> a" > > What am I doing wrong here? > > Thanks, > Weiyuan > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell From weiyuan.cai at gmail.com Thu May 8 21:38:42 2008 From: weiyuan.cai at gmail.com (Wei Yuan Cai) Date: Thu May 8 21:32:48 2008 Subject: [Haskell] [Haskell-cafe] Help with polymorphic functions In-Reply-To: <1210292195.10739.7.camel@iolo> References: <1210292195.10739.7.camel@iolo> Message-ID: Thank you all for the help. This was most helpful. Regards, Weiyuan On Fri, May 9, 2008 at 8:16 AM, Brett G. Giles wrote: > Hi Wei > > Haskell needs to know that it can legally apply the function "shift". > So, as requested, you need to add context to the typing of "test". > > if you define your function as: > > test :: (Data.Bits.Bits a) => a -> Int -> a > test x n = shift x n > > you should be fine. > > On Fri, 2008-05-09 at 03:10 +0800, Wei Yuan Cai wrote: > > Hello, > > > > I'm having some trouble with a polymorphic function using another > > polymorphic function within. A simplified code of what I'm trying to > > do is as follows: > > > > main = print $ test 1 8 > > > > test :: a -> Int -> a > > test x n = shift x n > > > > I get the following compilation error: > > > > Could not deduce (Data.Bits.Bits a) from the context () > > arising from a use of `shift' at test.hs:8:11-19 > > Possible fix: > > add (Data.Bits.Bits a) to the context of > > the type signature for `test' > > In the expression: shift x n > > In the definition of `test': test x n = shift x n > > > > > > shift is defined as "a -> Int -> a" > > > > What am I doing wrong here? > > > > Thanks, > > Weiyuan > > _______________________________________________ > > Haskell mailing list > > Haskell@haskell.org > > http://www.haskell.org/mailman/listinfo/haskell > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20080509/aa673d72/attachment.htm From voigt at tcs.inf.tu-dresden.de Fri May 9 03:26:40 2008 From: voigt at tcs.inf.tu-dresden.de (Janis Voigtlaender) Date: Fri May 9 03:18:46 2008 Subject: [Haskell] REMINDER: Haskell Communities and Activities Report Message-ID: <4823FCB0.2000508@tcs.inf.tu-dresden.de> Dear Haskellers, It is not yet too late to contribute to the 14th edition of the HC&A Report. The deadline is this weekend, Saturday, 10 May 2008. If you haven't already, please write an entry for your new project or update your old entry. Please mail your entries to in plain text or LaTeX format. More information can be found in the original Call for Contributions at http://www.haskell.org/pipermail/haskell/2008-April/020378.html We look forward to receiving your contributions. Thanks a lot, Andres and Janis. -- Dr. Janis Voigtlaender http://wwwtcs.inf.tu-dresden.de/~voigt/ mailto:voigt@tcs.inf.tu-dresden.de From abhay.parvate at gmail.com Fri May 9 08:28:57 2008 From: abhay.parvate at gmail.com (Abhay Parvate) Date: Fri May 9 08:23:01 2008 Subject: [Haskell] [Haskell-cafe] Help with polymorphic functions In-Reply-To: References: Message-ID: <3c4d5adf0805090528m560290fu3ec88cdeb3fa369e@mail.gmail.com> You can also drop the type signature and see what type deduction you get in ghci :) Your program would have compiled well without the type signature! It's also a good exercise to come up with the most general type of a function that you write, and then compare it with the type that is deduced by dropping it from the code. Of course in the final code many people would recommend that you put in the type declarations as a good form of documentation, and it may be also more specialized according to your usage than what the compiler/interpreter will deduce. Abhay 2008/5/9 Wei Yuan Cai : > Hello, > > I'm having some trouble with a polymorphic function using another > polymorphic function within. A simplified code of what I'm trying to do is > as follows: > > main = print $ test 1 8 > > test :: a -> Int -> a > test x n = shift x n > > I get the following compilation error: > > Could not deduce (Data.Bits.Bits a) from the context () > arising from a use of `shift' at test.hs:8:11-19 > Possible fix: > add (Data.Bits.Bits a) to the context of > the type signature for `test' > In the expression: shift x n > In the definition of `test': test x n = shift x n > > > shift is defined as "a -> Int -> a" > > What am I doing wrong here? > > Thanks, > Weiyuan > > _______________________________________________ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20080509/10df2022/attachment.htm From allbery at ece.cmu.edu Fri May 9 08:35:55 2008 From: allbery at ece.cmu.edu (Brandon S. Allbery KF8NH) Date: Fri May 9 08:29:56 2008 Subject: [Haskell] [Haskell-cafe] Help with polymorphic functions In-Reply-To: <3c4d5adf0805090528m560290fu3ec88cdeb3fa369e@mail.gmail.com> References: <3c4d5adf0805090528m560290fu3ec88cdeb3fa369e@mail.gmail.com> Message-ID: <40D6B9C7-630E-4396-A439-6D07357CBAFD@ece.cmu.edu> On 2008 May 9, at 8:28, Abhay Parvate wrote: > Of course in the final code many people would recommend that you put > in the type declarations as a good form of documentation, and it may > be also more specialized according to your usage than what the > compiler/interpreter will deduce. It's also useful to include them because it helps localize other type errors; if you leave type inference to the compiler, a type error will be reported when it is discovered, which may be far from where the actual error is. You end up having to trace back through the definitions of functions used in the failing expression to find where the actual type error is. -- 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20080509/feb71b29/attachment-0001.htm From mblazevic at stilo.com Fri May 9 10:59:17 2008 From: mblazevic at stilo.com (Mario Blazevic) Date: Fri May 9 10:53:20 2008 Subject: [Haskell] Announce: SCC, Streaming Component Combinator library Message-ID: <482466C5.6080306@stilo.com> I'm pleased to announce the 0.1 release of Streaming Component Combinators in Haskell, based on my earlier work done in OmniMark and published in paper Mario Bla?evi?, Streaming component combinators, Extreme Markup Languages, 2006. http://www.idealliance.org/papers/extreme/proceedings/html/2006/Blazevic01/EML2006Blazevic01.html The release consists of the following: - Yet another monad transformer with coroutine functionality. Its central feature is the function pipe :: forall context x m r1 r2. Monad m => Producer m x r1 -> Consumer m x r2 -> Pipe context m (r1, r2) - Based on the above, streaming component types Transducer and Splitter are defined, as well as a number of primitive component instances. - Next are component combinators that can be used to synthesize larger components. - Finally, there is a rudimentary executable, shsh (Streaming Haskell SHell), that exposes most of the above within a command-line shell. It's useful for experiments and testing of new components. Here are a few simple command examples: wc -c count | show | concatenate wc -l foreach line then substitute x else suppress end | count | show | concatenate grep "foo" foreach line having substring "foo" then append "\n" else suppress end sed "s:foo:bar:" foreach substring "foo" then substitute "bar" end sed "s:foo:[\\&]:" foreach substring "foo" then prepend "[" | append "]" end The SCC library and shell are available on Hackage, at http://hackage.haskell.org/cgi-bin/hackage-scripts/package/scc-0.1 From gorgon.filtre at gmail.com Tue May 13 18:11:21 2008 From: gorgon.filtre at gmail.com (Gorgonite) Date: Tue May 13 18:05:11 2008 Subject: [Haskell] Translation of the "Haskell Tutorial for C Programmers" Message-ID: <1ada6d610805131511s6ef5b372ue24cade357b620eb@mail.gmail.com> Hello, I don't know if there are French-speaking people reading this mailing-list, but we at haskell-fr have some great news today ! We didn't find any French translation of the "Haskell Tutorial for C Programmers", thus we decide to write it. Today, I would like to announce that we have completed a translation into French, that it can be read by following the link : http://corentin-dupont.developpez.com/tutoriels/haskell/haskell-for-c-programmers/ It is currently available as a set of HTML pages and PDF file. Please send your comments and suggestions to the French Haskell mailing list haskell-fr@haskell.org Best regards, -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20080514/030589e8/attachment.htm From lgreg.meredith at biosimilarity.com Fri May 16 12:37:44 2008 From: lgreg.meredith at biosimilarity.com (Greg Meredith) Date: Fri May 16 12:31:20 2008 Subject: [Haskell] NW Functional Programming Interest Group In-Reply-To: <5de3f5ca0804150821t342512bcv5fd3bb5f02f20bd7@mail.gmail.com> References: <5de3f5ca0802011155l771cc649wa0e671bbe3abe364@mail.gmail.com> <5de3f5ca0804150821t342512bcv5fd3bb5f02f20bd7@mail.gmail.com> Message-ID: <5de3f5ca0805160937m1e463076y453281b0648b9853@mail.gmail.com> All, Apologies for multiple listings. It's that time again. Our growing cadre of functionally-minded north westerners is meeting at the The Seattle Public Library *University Branch* 5009 Roosevelt Way N.E. *Seattle*, WA 98105 206-684-4063 from 18:30 - 20:00 on May 28th. **** Note the change in venue **** Agenda - JP has graciously offered to give a talk on darcs - we also need to continue to fill the talk pipeline Hope to see you there. Monadically yours, --greg -- L.G. Meredith Managing Partner Biosimilarity LLC 806 55th St NE Seattle, WA 98105 +1 206.650.3740 http://biosimilarity.blogspot.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20080516/afdadc54/attachment.htm From Axel.Simon at ens.fr Sat May 17 05:09:07 2008 From: Axel.Simon at ens.fr (Axel Simon) Date: Sat May 17 05:02:45 2008 Subject: [Haskell] release manager needed for Gtk2Hs References: <702FDE89-3AE1-47BB-BDFC-3855E92C4F97@di.ens.fr> Message-ID: <07A56718-2456-4E43-890E-3C8A0649D5B1@di.ens.fr> Good morning all, the Gtk2Hs library, one of the two major GUI libraries for Haskell, is in need of a release manager. With the upcoming HACR, I have realised that we haven't released in a long time despite the fact that there are many new developments in the darcs repository (the ListStore and TreeStore implemented in Haskell are now usable from all relevant widgets, e.g., ComboBox, IconView). Duncan has been busy working on Cabal which will allow us to swap Gtk2Hs' autoconf-based infrastructure to Cabal one day. I myself have relocated and very limited access to the various platforms that Gtk2Hs runs on. So while I'm still pushing towards a 1.0 release by working on Gtk2Hs, I don't have the resources to do the releases. Helping us releasing Gtk2Hs does not imply a long-term commitment. For now, we'd be very grateful for somebody helping us out with the next two releases (now and around Xmas). Ideally you have: - Access to a Linux, Windows, Sun and MacOS machine (no biggie if you don't have a Mac). - Root access to the Linux and Windows machine. - Experience using autoconf, possibly automake. - Knowledge of darcs. - Experience of how broken sed on Solaris is. - Machines that have a really ancient versions of Gtk installed. - One machine that has the latest Gtk installed as well as the SourceView widget, one of the HTML browser widgets, libglade, svgcairo, gconf, gnomevfs, glext and gstreamer libraries. What we would like you to do is: - Fix configuration issues that people have reported. - Build the library on all platforms mentioned above. - Build a source release. - Produce a binary installer on Windows. - Put the documentatio online. - Make announcements. What would be great: - Build a binary installer for Mac using the Aqua port of Gtk+. - Make the library build documentation using the new haddock. What you get out of it: - Experience working with a 82 kLoc Haskell project. - Mentioned in the Hall of Fame on our webpage. - Eternal gratefulness from us and our growing community of users. - A beer from me or Duncan when the situation arises. If you're interested, please send an email to me or Duncan. Cheers, Axel. From byroncook at gmail.com Tue May 20 07:37:05 2008 From: byroncook at gmail.com (Byron Cook) Date: Tue May 20 07:30:29 2008 Subject: [Haskell] looking for interesting examples with recursion + state in which you'd want to prove termination In-Reply-To: <8c1e7d30805200234s68e0142ck835c140c51ea533c@mail.gmail.com> References: <8c1e7d30805200234s68e0142ck835c140c51ea533c@mail.gmail.com> Message-ID: <8c1e7d30805200437t4a1e967ehc8eefbf240761e0b@mail.gmail.com> Hi Haskell folks, I'm looking for interesting recursive functions (i.e. not tail-recursive) that make use of state in the state monad. I'd like to prove them terminating with a new method I'm developing (or, of course, perhaps disprove termination....). If you have examples in this class that you wouldn't mind sharing, please send them to me. - Byron http://research.microsoft.com/~bycook From mh at informatik.uni-kiel.de Wed May 21 11:34:15 2008 From: mh at informatik.uni-kiel.de (Michael Hanus) Date: Wed May 21 11:29:05 2008 Subject: [Haskell] CfP: FDPE 2008 Message-ID: <20080521153415.90F5D64ABF@localhost> ====================================================================== Call for Papers Functional and Declarative Programming in Education (FDPE08) http://www-ps.informatik.uni-kiel.de/fdpe08/ Victoria, BC, Canada, 21 September, 2008 The workshop will be held in conjunction with ICFP 2008. http://www.icfpconference.org/icfp2008/ Important Dates --------------- Submission deadline: Friday, June 20, 2008 Notification of acceptance: Friday, July 25, 2008 Final revision due: Monday, July 14, 2008 Workshop: Sunday, September 21, 2008 Goals of the Workshop --------------------- Functional and declarative programming plays an increasingly important role in computing education at all levels. The aim of this workshop is to bring together educators and others who are interested in exchanging ideas on how to use a functional or declarative programming style in the classroom or in e-learning environments. Beyond the traditional focus of teaching programming by means of the functional or declarative paradigm, we are especially interested in case studies showing how these languages can be elegantly applied in teaching other topics of computer science (such as Appel's use of ML to teach compiler construction). Another interesting area covered by the workshop should be dedicated to teaching functional or declarative programming ideas in industrial environments. Functional and declarative languages have become more influential in industry. Thus, teaching such languages has become an interesting topic, as it must take into consideration long programming experiences in imperative languages. Topics: ------- The workshop will cover a wide spectrum of functional and declarative programming techniques: * programming courses using traditional functional and declarative programming languages (e.g. Haskell, Mathematica, ML, Prolog, Scheme, etc); * programming courses teaching functional programming in commercial languages (e.g. C, C++, Common LISP, etc); * programming courses teaching functional program design in modern OO languages (e.g. Java, C#, Eiffel, etc); * pedagogic programming environments to support functional and declarative programming; * teaching tools implemented with functional and declarative languages and/or ideas; * declarative programming language extensions and implementations with pedagogical relevance; * application courses that benefit heavily from functional and declarative programming (e.g. theorem proving or hardware design). Furthermore, the workshop will also cover all levels of education: * secondary school; * college and university; * post-college and continuing professional education. FDPE will be held in conjunction with the 13th ACM SIGPLAN International Conference on Functional Programming (ICFP 2008) in Victoria, British Columbia, Canada on Sunday, September 21, 2008. Submitted papers should describe new ideas, experimental results, or education-related projects. In order to encourage lively discussion, submitted papers may describe new ideas of education as well as project proposals about incorporating functional and declarative concepts into education curricula. All papers will be judged on a combination of correctness, significance, novelty, clarity, and interest to the community. All paper submissions must be at most 12 pages total length in the standard ACM SIGPLAN two-column conference format (9pt). Accepted papers will be published by the ACM and will appear in the ACM Digital Library. Submissions will be refereed by the program commitee who will call upon other members involved in teaching in related areas for expert advice. More details about the submission procedure will be announced on the FDPE website at http://www-ps.informatik.uni-kiel.de/fdpe08/ Registration, hotels, travel, etc. ---------------------------------- Information about registration, accommodation, and travel will eventually be available on the main conference web site (http://www.icfpconference.org/) Program Committee ----------------- * John Clements, California Polytechnic State University, United States * Matthew Flatt, University of Utah, United States * Michael Hanus, University of Kiel, Germany * Frank Huch, University of Kiel, Germany (co-chair) * Adam Parkin, University of Victoria, Canada (co-chair) * Simon Thompson, University of Kent, UK * Mads Torgersen, Microsoft Redmond, United States ---------------------------------------------------------------------- From simonpj at microsoft.com Thu May 22 08:58:34 2008 From: simonpj at microsoft.com (Simon Peyton-Jones) Date: Thu May 22 08:52:13 2008 Subject: [Haskell] A chance to share your experience Message-ID: <638ABD0A29C8884A91BC5FB5C349B1C32AE57E3EAA@EA-EXMSG-C334.europe.corp.microsoft.com> Friends I know for a fact that many of you are using Haskell successfully for real applications. Yet none of you have sent me an offer of a presentation at the Commercial Users of Functional Programming workshop, which happens in late Sept. I'm the program co-chair, and I confidently expecting several Haskell offers... but not one so far. I am sad. I am very sad. Make me happy! I'm sure you are very busy making your business work. But think what fun it'd be to share your experience with others, meet other people with similar experiences, recruit bright students to your company... Happily, there is still time. The deadline for offers is 2nd June. All we need by then is a short summary of what you think you might say. You don't have to write a paper (not now, not ever). Your presentation does not have to be highly technical. On the contrary, the emphasis is on the process issues that surround functional programming: convincing management, changes to software development, testing, benefits, costs, successes, concerns. I'm going to the Lake District for a week's holiday next week (it's half term in the UK). Please send me a lovely full mailbox to come back to. The CFP is below, and at http://cufp.galois.com/. best wishes Simon Commercial Users of Functional Programming Workshop (CUFP) 2008 26 September 2008, Victoria, British Columbia ============== CALL FOR PRESENTATIONS ====================== Presentation proposals due 2 June 2008 http://cufp.functionalprogramming.com Functional Programming As a Means, Not an End Sponsored by SIGPLAN Co-located with ICFP 2008 _________________________________________________________________ Functional languages have been under academic development for over 25 years, and remain fertile ground for programming language research. Recently, however, developers in industrial, governmental, and open source projects have begun to use functional programming successfully in practical applications. In these settings, functional programming has often provided dramatic leverage, including whole new ways of thinking about the original problem. The goal of the CUFP workshop is to act as a voice for these users of functional programming. The workshop supports the increasing viability of functional programming in the commercial, governmental, and open-source space by providing a forum for professionals to share their experiences and ideas, whether those ideas are related to business, management, or engineering. The workshop is also designed to enable the formation and reinforcement of relationships that further the commercial use of functional programming. Speaking at CUFP If you use functional programming as a means, rather than as an end, we invite you to offer to give a talk at the workshop. Alternatively, if you know someone who would give a good talk, please nominate them! Talks are typically 30-45 minutes long, but can be shorter. They aim to inform participants about how functional programming played out in real-world applications, focusing especially on the re-usable lessons learned, or insights gained. Your talk does not need to be highly technical; for this audience, reflections on the commercial, management, or software engineering aspects are, if anything, more important. You do not need to submit a paper! If you are interested in offering a talk, or nominating someone to do so, send an e-mail to jim (dot) d (dot) grundy (at) intel (dot) com or simonpj (at) microsoft (dot) com by 2 June 2008 with a short description of what you'd like to talk about or what you think your nominee should give a talk about. Such descriptions should be about one page long. Program Plans CUFP 2008 will last a full day and feature an invited presentation from Michael Hopcroft, the product unit manager for the forthcoming release of Microsoft Visual Studio F#. Additionally, the program will include a mix of presentations and discussion sessions. Topics will range over a wide area, including: * Case studies of successful and unsuccessful uses of functional programming; * Business opportunities and risks from using functional languages; * Enablers for functional language use in a commercial setting; * Barriers to the adoption of functional languages, and * Mitigation strategies for overcoming limitations of functional programming. There will be no published proceedings, as the meeting is intended to be more a discussion forum than a technical interchange. Program Committee * Lennart Augustsson * Matthias Blume * Adam Granicz * Jim Grundy (co-chair) * John Lalonde * Andy Martin * Yaron Minsky * Simon Peyton Jones (co-chair) * Ulf Wiger This will be the fifth CUFP, for more information - including reports from attendees of previous events - see the workshop web site: http://cufp.functionalprogramming.com From voigt at tcs.inf.tu-dresden.de Fri May 23 08:20:27 2008 From: voigt at tcs.inf.tu-dresden.de (Janis Voigtlaender) Date: Fri May 23 08:10:38 2008 Subject: [Haskell] EUROPEAN MASTERS PROGRAM IN COMPUTATIONAL LOGIC Message-ID: <4836B68B.5010709@tcs.inf.tu-dresden.de> *** EUROPEAN MASTERS PROGRAM IN COMPUTATIONAL LOGIC *** european.computational-logic.org/ The European Masters Program in Computational Logic is a distributed MSc program which is offered by the following universities: * Universidade Nova de Lisboa, Portugal * Free University of Bozen-Bolzano, Italy * Technische Universitaet Dresden, Germany * Technische Universitaet Wien, Austria * Universidad Politecnica de Madrid, Spain Students select two out of the five partner universities, study for one year at each of the selected universities and will receive a double MSc-degree from the selected universities. NEXT APPLICATION DEADLINES: - 31 May 2008: deadline for all European and non-European students (notification of acceptance: 15 July 2008) SCHOLARSHIPS & MONEY SUPPORT: There will be 12 consortium scholarships to waive one year's tuition fee of 3.000 ? for students who newly enroll in the winter semester 2008 and do not receive any other scholarship. These scholarships will be given on the basis of academic merit. Every year 10 EMCL students with European citizenship can visit Australia (Canberra, Sydney, Melbourne or Brisbane) up to 3 months to work on a research project, sponsored by the European Master. The study period in Australia is part of the study programme and it is fully recognised by the European Master's Program in Computational Logic. The guaranteed scholarship is of 3,100 ? and it covers the travel and living expenses in Australia. APPLICATION: Check this web page for detailed info on applications: http://european.computational-logic.org/ THE STUDY PROGRAMME: The European Masters Program in Computational Logic is designed to meet the demands of industry and research in this rapidly growing area. Based on a solid foundation in mathematical logic, theoretical computer science, artificial intelligence and declarative programming students will acquire in-depth knowledge necessary to specify, implement and run complex systems as well as to prove properties of these systems. In particular, the focus of instruction will be in deduction systems, knowledge representation and reasoning, artificial intelligence, formal specification and verification, syntax directed semantics, logic and automata theory, logic and computability. This basic knowledge is then applied to areas like logic and natural language processing, logic and the semantic web, bioinformatics, information systems and database technology, software and hardware verification. Students will acquire practical experience and will become familiar in the use of tools within these applications. In addition, students will be prepared for a future PhD, they will come in contact with the international research community and will be integrated into ongoing research projects. They will develop competence in foreign languages and international relationships, thereby improving their social skills. Applicants should have a Bachelor degree (Bologna 1st cycle or equivalent) in Computer Science, Computer Engineering, Logic, or other relevant disciplines; special cases will be considered. The program has various strength that make it unique among European universities: * Curriculum taught entirely in English: The program is open to the world and prepares the students to move on the international scene. * Possibility of a strongly research-oriented curriculum. * Possibility for project-based routes to obtain the degree and extensive lab facilities. * International student community. * Direct interaction with the local and international industry and research centres, with the possibility of practical and research internships that can lead to future employment. * Excellent scholarship opportunities and student accommodations. The European Masters Program in Computational Logic is one of the few European Masters awarded by the European Union's Erasmus Mundus programme from its first year of existence in 2004. The Erasmus Mundus programme is a co-operation and mobility programme in the field of higher education which promotes the European Union as a centre of excellence in learning around the world. It supports European top-quality Masters Courses and enhances the visibility and attractiveness of European higher education in third-countries. It also provides EU-funded scholarships for third-country nationals participating in these Masters Courses, as well as scholarships for EU-nationals studying in third-countries. The European Masters Program in Computational Logic is sponsored scientifically by the European Network of Excellence on Computational Logic (CoLogNET), the European Association of Logic, Language and Information (FoLLI), the European Coordinating Committee for Artificial Intelligence (ECCAI), the Italian Association for Artificial Intelligence (AI*IA), the Italian Association for Informatics (AICA, member of the Council of European Professional Informatics Societies), the Italian Association for Logic and its Applications (AILA), and the Portuguese Association for Artificial Intelligence (APPIA). FURTHER INFORMATION: http://european.computational-logic.org/ Prof. Dr. Steffen Hoelldobler International Center for Computational Logic Technische Universit?t Dresden 01062 Dresden, Germany phone: [+49](351)46 33 83 40 fax: [+49](351)46 33 83 42 email: sh@iccl.tu-dresden.de From conor at strictlypositive.org Sat May 24 12:23:39 2008 From: conor at strictlypositive.org (Conor McBride) Date: Sat May 24 12:17:37 2008 Subject: [Haskell] MSFP 2008: call for participation Message-ID: +*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*-> 2nd Workshop on MATHEMATICALLY STRUCTURED FUNCTIONAL PROGRAMMING +*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*->+*-> 6 July 2008 Reykjavik, Iceland co-located with ICALP 2008 http://msfp.org.uk Call for Participation **early workshop registration ends 5 June** registration via http://www.ru.is/icalp08/ The workshop on Mathematically Structured Functional Programming is devoted to the derivation of functionality from structure. It is a celebration of the direct impact of Theoretical Computer Science on programs as we write them today. Modern programming languages, and in particular functional languages, support the direct expression of mathematical structures, equipping programmers with tools of remarkable power and abstraction. Monadic programming in Haskell is the paradigmatic example, but there are many more mathematical insights manifest in programs and in programming language design: Freyd-categories in reactive programming, symbolic differentiation yielding context structures, and comonadic presentations of dataflow, to name but three. This workshop is a forum for researchers who seek to reflect mathematical phenomena in data and control. INVITED SPEAKERS *Andrej Bauer* (http://andrej.com/) of the Faculty of Mathematics and Physics, University of Ljubljana, the Institute of Mathematics, Physics and Mechanics, Slovenia, and the Mathematics and Computation weblog (http:// math.andrej.com/), *Dan Piponi* (http://homepage.mac.com/sigfpe/) of Industrial Light and Magic, Academy Award winner, and author of the weblog A Neighbourhood of Infinity (http:// sigfpe.blogspot.com/) ACCEPTED PAPERS (to appear in ENTCS) A Partial Type Checking Algorithm for System U Andreas Abel and Thorsten Altenkirch What is a Categorical Model of Arrows? Robert Atkey Yet another implementation of attribute evaluation Eric Badouel, Bernard Fotsing, and Rodrigue Tchougong Algebraic Specialization of Generic Functions for Recursive Types Alcino Cunha and Hugo Pacheco Modularity and Implementation of Mathematical Operational Semantics Mauro Jaskelioff, Neil Ghani, and Graham Hutton Idioms are oblivious, arrows are meticulous, monads are promiscuous Sam Lindley, Jeremy Yallop, and Philip Wadler Simulating Finite Eilenberg Machines with a Reactive Engine Benoit Razet The recursion scheme from the cofree recursive comonad Tarmo Uustalu and Varmo Vene PROGRAMME COMMITTEE Yves Bertot, INRIA, Sophia-Antipolis Venanzio Capretta (co-chair), Radboud University, Nijmegen Jacques Carette, McMaster University, Ontario Thierry Coquand, Chalmers University, G?teborg Andrzej Filinski, K?benhavns Universitet Jean-Christophe Filli?tre, LRI, Universit? Paris Sud Jeremy Gibbons, Oxford University Andy Gill, Galois Peter Hancock, University of Nottingham Oleg Kiselyov, FNMOC Paul Blain Levy, University of Birmingham Andres L?h, Utrecht University Marino Miculan, Universit? di Udine Conor McBride (co-chair), Alta Systems, Northern Ireland James McKinna, Radboud University, Nijmegen Alex Simpson, University of Edinburgh Tarmo Uustalu, Institute of Cybernetics, Tallinn We're delighted to be able to present such a strong line-up of invited and contributed talks, and we warmly invite you to come and enjoy the fun. Early workshop registration closes on 5 June, and Iceland gets busy in the summer, so do book now to avoid disappointment. Looking forward to seeing you in Iceland Venanzio Capretta Conor McBride From gvidal at dsic.upv.es Mon May 26 04:31:42 2008 From: gvidal at dsic.upv.es (German Vidal) Date: Mon May 26 04:24:51 2008 Subject: [Haskell] SAS 2008 - Call for participation Message-ID: ****************************************************************** Call for Participation SAS - LOPSTR - PPDP - PLID 2008 http://www.dsic.upv.es/~slp2008/ Valencia, Spain ****************************************************************** IMPORTANT DATES: Early registration: June 10, 2008 ****************************************************************** SAS 2008, July 16-18 Static Analysis Symposium http://www.dsic.upv.es/~sas2008/ LOPSTR 2008, July 17-18 Symposium on Logic-Based Program Synthesis and Transformation http://www.informatik.uni-kiel.de/%7Emh/lopstr08/ PPDP 2008, July 15-17 ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming http://www.clip.dia.fi.upm.es/Conferences/PPDP08/ PLID 2008, July 15 Workshop on Programming Language Interference and Dependence http://www.clip.dia.fi.upm.es/Conferences/PLID08/home.php *** REGISTRATION Please register online at http://www.dsic.upv.es/~slp2008/ The early registration deadline is June 10, 2008. ****************************************************************** From genaim at clip.dia.fi.upm.es Sun May 25 11:00:32 2008 From: genaim at clip.dia.fi.upm.es (Samir Genaim) Date: Mon May 26 06:35:52 2008 Subject: [Haskell] PLID'08 - Last Call for Contributions Message-ID: ********************************************************* * The Fourth International Workshop * * on * * Programming Language Interference and Dependence * * * * co-located with LOPSTR'08, PPDP'08 and SAS'08 * * * * 15 July, 2008, Valencia, Spain * * * * Venue: The Technical University of Valencia * * * * Last Call for Contributions * * * * http://www.clip.dia.fi.upm.es/Conferences/PLID08 * * * ********************************************************* Important Dates =============== Expression of interest June 1, 2008 Extended abstract June 15, 2008 Workshop July 15, 2008 Early Registration June 10, 2008 Workshop Description ==================== Interference and dependence are closely related concepts, the first being the observable phenomenon connected to the second. Interference essentially means that behaviour of some parts of a dynamic system may influence the behaviour of other parts of the system. Dependence specifies the relation between the semantics of sub-components of a dynamic system. Discovering, measuring and controlling interference is essential in many aspects of modern computer science, in particular in security, program analysis and verification, debugging, systems specification, model checking, program manipulation, program slicing, reverse engineering, data mining, distributed databases and systems biology. Doing these things requires theories, models and semantics for interference and dependence, as well as algorithms and tools for analysis and reasoning about interference and dependence. The aim of this workshop is to gather together the community of people that study dependence and interference from the different points of view in order to generate new possible research directions. PLID is devoted to bridging all these communities and assisting work towards a common goal, providing the appropriate environment for reasoning about the state of the art in interference and dependence. Topics of interest include but are not limited to: * Security against unwanted interference and dependence * Models and theories of program interference * Algorithms for reducing or removing interference or for ameliorating its effects * Theory and foundations of program slicing and related dependence analyses * Resource declassification theories * Semantics of dependence and interference * Analyses based on interference and dependence * Abstract interpretation for dependence and interference * Dependence and interference in specifications * Slicing models and specifications * Interaction between dependence and refinement Keynote Speaker =============== Gilles Barthe, IMDEA-software (Madrid, Spain) Submission ========== The workshop welcomes contributions of on-going work and ideas in the field of dependence and interference. Those who are interested in having a talk at the workshop and/or discussing issues related with these subjects are invited to send your expression of interest to Samir Genaim (samir at clip.dia.fi.upm.es) before June 1st, 2008. There will be no formal publication of papers. A web-page will be organised collecting all the workshop contributions. Submitted extended abstracts should be of at most 10 pages LNCS-style and should be sent before June 15th 2008. Program Committee ================= David Clark Kings College, London, UK Sebastian Danicic University of London, UK Samir Genaim (chair) Technical University of Madrid, Spain Roberto Giacobazzi University of Verona, Italy Daniele Gorla University of Roma, Italy Sebastian Hunt City University, London, UK Herbert Wiklicky Imperial College, London, UK Steve Zdancewic University of Pennsylvania, USA Local organization chair ======================== Christophe Joubert Technical University of Valencia / DSIC From eijiro.sumii at gmail.com Tue May 27 01:07:05 2008 From: eijiro.sumii at gmail.com (Eijiro Sumii) Date: Tue May 27 01:00:07 2008 Subject: [Haskell] ML Workshop 2008: 2nd call for papers Message-ID: ********************************************************************** News: The submission web site is now online. ********************************************************************** CALL FOR PAPERS The 2008 ACM SIGPLAN Workshop on ML Sunday, September 21, 2008 Victoria, British Columbia, Canada To be held in conjunction with ICFP 2008 http://www.kb.ecei.tohoku.ac.jp/ml2008/ IMPORTANT DATES: Submission deadline: Monday, June 23, 2008 Notification of acceptance: Friday, July 18, 2008 Final revision due: Monday, July 28, 2008 Workshop: Sunday, September 21, 2008 GOALS OF THE WORKSHOP: ML is a family of programming languages that includes dialects known as Standard ML, Objective Caml, and F#. The development of these languages has inspired a large amount of computer science research, both practical and theoretical. This workshop aims to build on previous occasions (recent instances are ML 2005 in Tallinn, Estonia, 2006 in Portland, Oregon, and 2007 in Freiburg, Germany), providing a forum to encourage discussion and research on ML and related technology. The 2008 Workshop on ML will be held in conjunction with the 13th ACM SIGPLAN International Conference on Functional Programming (ICFP 2008) in Victoria, British Columbia, Canada on Sunday, September 21, 2008. This year we extend the scope of the workshop from ML itself to technologies closely related to ML (higher-order, typed, or strict languages) and invite high-quality papers in all areas of crucial importance for the future of ML. SUBMISSION GUIDELINES: We seek papers on topics related to ML, including (but not limited to): * applications * extensions: objects, classes, concurrency, distribution and mobility, semi-structured data handling, etc. * type systems (static and dynamic): inference, effects, overloading, error reporting, contracts, specifications and assertions, etc. * implementation: compilers, interpreters, partial evaluators, garbage collectors, etc. * environments: libraries, tools, editors, debuggers, cross-language interoperability, functional data structures, etc. * semantics Submitted papers should describe new ideas, experimental results, ML-related projects, or informed positions regarding proposals for next-generation ML languages. In order to encourage lively discussion, submitted papers may describe work in progress. All papers will be judged on a combination of correctness, significance, novelty, clarity, and interest to the community. All paper submissions must be at most 12 pages total length in the standard ACM SIGPLAN two-column conference format (9pt): http://www.acm.org/sigs/sigplan/authorInformation.htm Accepted papers will be published by the ACM and will appear in the ACM Digital Library. The submission web site is now online. Visit http://www.easychair.org/conferences?conf=ml2008 and follow the instructions. PROGRAM CHAIR: Eijiro Sumii (Tohoku University) PROGRAM COMMITTEE: Sylvain Conchon (Paris-Sud University / INRIA Saclay-Ile-de-France) Karl Crary (Carnegie Mellon University) Andrzej Filinski (DIKU) Robby Findler (The University of Chicago) Cormac Flanagan (University of California at Santa Cruz) Alain Frisch (LexiFi) Dan Grossman (University of Washington) Didier Remy (INRIA Paris-Rocquencourt) Claudio Russo (Microsoft Research Cambridge) Eijiro Sumii (Tohoku University) Hongwei Xi (Boston University) From colin at cs.york.ac.uk Tue May 27 06:13:17 2008 From: colin at cs.york.ac.uk (Colin Runciman) Date: Tue May 27 06:07:36 2008 Subject: [Haskell] ANN: SmallCheck 0.4 Message-ID: <483BDEBD.3090904@cs.york.ac.uk> SmallCheck 0.4: another lightweight testing library in Haskell -------------------------------------------------------------- A new version of SmallCheck can be obtained from: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/smallcheck or alternatively from http://www.cs.york.ac.uk/fp/smallcheck0.4.tar The difference from 0.3 is that module SmallCheck is now Test.SmallCheck and has been cabal-packaged. SmallCheck is similar to QuickCheck (Claessen and Hughes 2000-) but instead of testing for a sample of randomly generated values, SmallCheck tests properties for all the finitely many values up to some depth, progressively increasing the depth used. Folk-law: if there is any case in which a program fails, there is almost always a simple one. Corollary: if a program does not fail in any simple case, it almost never fails. Other possible sales pitches: * write test generators for your own types more easily * be sure any counter-examples found are minimal * write properties using existentials as well as universals * establish complete coverage of a defined test-space * display counter-examples of functional type Comments and suggestions welcome. Colin Runciman From martijn at van.steenbergen.nl Thu May 29 10:56:20 2008 From: martijn at van.steenbergen.nl (Martijn van Steenbergen) Date: Thu May 29 10:49:17 2008 Subject: [Haskell] Announcement: Yogurt, a MUD client library Message-ID: <483EC414.7070503@van.steenbergen.nl> Hello all, The past weeks I've been working on Yogurt, which as far as I know is the first MUD client for Haskell. It's terminal-based and relies on your terminal for input, output and stuff like ANSI colors. It allows you to set up hooks that listen for specific messages, either from local to remote or vice versa (a generalization of aliases and triggers). Together with variables and timers, this should satisfy the basic scripting needs. It's up for download on hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Yogurt If you play any MUDs, go give Yogurt a try! I'd love to hear your comments, suggestions and experiences. Below is a small program which connects to a MUD and demonstrates some examples. Run it with runhaskell. Kind regards, Martijn van Steenbergen. --- {-# OPTIONS_GHC -fglasgow-exts #-} module Main where import Network.Yogurt import Network.Yogurt.Utils import Data.Char main :: IO () main = connect "eclipse.cs.pdx.edu" 7680 newmoon newmoon :: Mud () newmoon = do -- Automatically log in. mkTriggerOnce "^Enter your name:" $ do sendln "username" sendln "password" -- Sound bell everytime someone sends you a tell. mkTrigger "tells you: " (echo "\BEL") -- Send return every 5 minutes to keep connection alive. -- Most MUDs don't appreciate this. :-) mkTimer 300000 (sendln "") -- Count the number of occurrences of the word "quiet". vQuiet <- mkVar 0 mkTrigger "quiet" $ modifyVar vQuiet (+ 1) mkCommand "quiet" $ readVar vQuiet >>= echoln . show -- Show all currently installed hooks. mkCommand "lshooks" $ do allHooks >>= echoln . unlines . map show -- We can do fun stuff with recursive monads: mkCommand "go" $ mdo t <- mkTimerOnce 1000 (echoln "hello!" >> rmHook h) h <- mkCommand "stop" (rmTimer t >> rmHook h) -- Use semicolons to split commands: mkPrioHook 10 Remote ";" $ do before >>= matchMoreOn . (++ "\n") after >>= matchMoreOn' -- Allow runtime system commands: mkHook Remote "^system (.*)" (group 1 >>= system) -- Speedwalks. For example, 6n expands to n;n;n;n;n;n. mkHook Remote "^[0-9]+[neswud]$" $ do (n, dir) <- fmap (span isDigit) (group 0) sequence $ replicate (read n) (sendln dir) return () From coreyoconnor at gmail.com Thu May 29 13:36:15 2008 From: coreyoconnor at gmail.com (Corey O'Connor) Date: Thu May 29 13:29:09 2008 Subject: [Haskell] Current maintainer of the VTY package? Message-ID: Hi, Does anybody know the current maintainer of the VTY package? http://hackage.haskell.org/cgi-bin/hackage-scripts/package/vty I have a patch to resolve an issue I was running into while using the Yi editor. I attempted to Stefan O'Rear but received no reply. The suspicion is that he is no longer the maintainer of this package. -- -Corey O'Connor From stefanor at cox.net Fri May 30 00:38:08 2008 From: stefanor at cox.net (Stefan O'Rear) Date: Fri May 30 00:31:05 2008 Subject: [Haskell] Current maintainer of the VTY package? In-Reply-To: References: Message-ID: <20080530043808.GA4297@localhost.localdomain> On Thu, May 29, 2008 at 12:36:15PM -0500, Corey O'Connor wrote: > Hi, > Does anybody know the current maintainer of the VTY package? > http://hackage.haskell.org/cgi-bin/hackage-scripts/package/vty > > I have a patch to resolve an issue I was running into while using the > Yi editor. I attempted to Stefan O'Rear but > received no reply. The suspicion is that he is no longer the > maintainer of this package. Fate of the message: Filed while trying to think of the best way to put my response, then forgotten. Current maintainer of vty: You. I wrote vty some time ago because I needed terminal IO for a roguelike project and could not get curses to act in a sane way; then a while later I did a different project in Haskell, and the Obvious Thing To Do was translate my understood library. #haskell persuaded me to release it, and I regret this greatly - jyp picked up vty for use in Yi, and now I'm stuck maintaining a library I neither use, care about, nor to any great extent remember how it works. I'd dearly love to get this thing off my shoulders - will you take it? There is definitely a need. Stefan -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: Digital signature Url : http://www.haskell.org/pipermail/haskell/attachments/20080529/12f08cbe/attachment.bin From coreyoconnor at gmail.com Fri May 30 01:03:53 2008 From: coreyoconnor at gmail.com (Corey O'Connor) Date: Fri May 30 00:56:46 2008 Subject: [Haskell] Current maintainer of the VTY package? In-Reply-To: <20080530043808.GA4297@localhost.localdomain> References: <20080530043808.GA4297@localhost.localdomain> Message-ID: On Thu, May 29, 2008 at 9:38 PM, Stefan O'Rear wrote: > > Fate of the message: Filed while trying to think of the best way to put > my response, then forgotten. No worries. :-) > Current maintainer of vty: You. I wrote vty some time ago because I > needed terminal IO for a roguelike project and could not get curses to > act in a sane way; then a while later I did a different project in > Haskell, and the Obvious Thing To Do was translate my understood > library. #haskell persuaded me to release it, and I regret this greatly > - jyp picked up vty for use in Yi, and now I'm stuck maintaining a > library I neither use, care about, nor to any great extent remember how > it works. I'd dearly love to get this thing off my shoulders - will you > take it? There is definitely a need. Sure! My primary goal is to optimize it's use with Yi. Still, I'll be happy to take on maintenance. I've pulled my copy of the repo to: http://www.tothepowerofdisco.com/repo/vty/ And updated the "maintainer:" field of the cabal specification. Aside from updating the reference to what URL the package can get retrieved from and updating Hackage, I'm not sure what else is required. -Corey > > Stefan > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.6 (GNU/Linux) > > iD8DBQFIP4SwFBz7OZ2P+dIRAn8SAKCGTiiQTPX1SaBIEIBqNYZRxlS3FwCfSX8J > +ji4+t385wRghESOswCs2U4= > =8xn+ > -----END PGP SIGNATURE----- > > -- -Corey O'Connor From voigt at tcs.inf.tu-dresden.de Fri May 30 04:00:00 2008 From: voigt at tcs.inf.tu-dresden.de (Janis Voigtlaender) Date: Fri May 30 03:49:30 2008 Subject: [Haskell] ANNOUNCE: Haskell Communities and Activities Report (14th ed., May 2008) Message-ID: <483FB400.409@tcs.inf.tu-dresden.de> On behalf of the many, many contributors, we are pleased to announce that the Haskell Communities and Activities Report (14th edition, May 2008) http://www.haskell.org/communities/ is now available from the Haskell Communities home page in PDF and HTML formats. Many thanks go to all the people that contributed to this report, both directly, by sending in descriptions, and indirectly, by doing all the interesting things that are reported. We hope you will find it as interesting a read as we did. If you haven't encountered the Haskell Communities and Activities Reports before, you may like to know that the first of these reports was published in November 2001. Their goal is to improve the communication between the increasingly diverse groups, projects and individuals working on, with, or inspired by Haskell. The idea behind these reports is simple: Every six months, a call goes out to all of you enjoying Haskell to contribute brief summaries of your own area of work. Many of you respond (eagerly, unprompted, and well in time for the actual deadline ;) ) to the call. The editor collects all the contributions into a single report and feeds that back to the community. When we try for the next update, six months from now, you might want to report on your own work, project, research area or group as well. So, please put the following into your diaries now: ---------------------------------------- End of October 2008: target deadline for contributions to the November 2008 edition of the HC&A Report ---------------------------------------- Unfortunately, many Haskellers working on interesting projects are so busy with their work that they seem to have lost the time to follow the Haskell related mailing lists and newsgroups, and have trouble even finding time to report on their work. If you are a member, user or friend of a project so burdened, please find someone willing to make time to report and ask them to `register' with the editor for a simple e-mail reminder in the middle of November (you could point us to them as well, and we can then politely ask if they want to contribute, but it might work better if you do the initial asking). Of course, they will still have to find the ten to fifteen minutes to draw up their report, but maybe we can increase our coverage of all that is going on in the community. Feel free to circulate this announcement further in order to reach people who might otherwise not see it. Enjoy! Andres Loeh and Janis Voigtlaender -- Dr. Janis Voigtlaender http://wwwtcs.inf.tu-dresden.de/~voigt/ mailto:voigt@tcs.inf.tu-dresden.de From sescobar at DSIC.UPV.ES Fri May 30 05:16:15 2008 From: sescobar at DSIC.UPV.ES (Santiago Escobar) Date: Fri May 30 05:09:10 2008 Subject: [Haskell] SecReT 2008 - Reminder Message-ID: SecReT 2008 - CALL FOR PARTICIPATION !!! Early registration deadline: JUNE 1, 2008 !!! ******************************************************************** SecReT 2008 3rd International Workshop on Security and Rewriting Techniques http://www.dsic.upv.es/workshops/secret08 Sunday, June 22, 2008, Pittsburgh, USA Affiliated workshop of the 21st IEEE Computer Security Foundations Symposium (CSF) and the 23rd IEEE Symposium on Logic In Computer Science (LICS) The aim of this workshop is to bring together rewriting researchers and security experts, in order to foster their interaction and develop future collaborations in this area, provide a forum for presenting new ideas and work in progress, and enable newcomers to learn about current activities in this area. The workshop focuses on the use of rewriting techniques in all aspects of security. Specific topics include: authentication, encryption, access control and authorization, protocol verification, specification of policies, intrusion detection, integrity of information, control of information leakage, control of distributed and mobile code, etc. The SecReT 2008 program includes 6 regular papers and two invited talks by Jonathan Millen (MITRE,USA) and Hubert Comon (Cachan, France). From ppdp08-cfp at clip.dia.fi.upm.es Fri May 30 05:30:36 2008 From: ppdp08-cfp at clip.dia.fi.upm.es (Elvira Albert) Date: Fri May 30 05:24:30 2008 Subject: [Haskell] PPDP'08: Call for Participation Message-ID: ................................................................ ACM PPDP 2008 - Call For Participation 10th ACM-SIGPLAN International Symposium on Principles and Practice of Declarative Programming Valencia, Spain, July 15-17, 2008 **** EARLY REGISTRATION: June 10 2008 **** http://www.dsic.upv.es/~slp2008 ................................................................ SCOPE: PPDP 2008 is a forum for the declarative programming communities, gathering researchers working on logic, constraint and functional programming, but also on other programming language paradigms like visual programming, executable specification languages, database languages, AI and knowledge representation languages for the "semantic web". RELATED EVENTS: PPDP 2008 will be co-located with the 15th International Static Analysis Symposium (SAS 2008), the 18th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2008) and the 4th International Workshop on Programming Language Interference and Dependence (PLID 2008). PROGRAMME: Invited Speaker: ----------------- Michael Leuschel. Declarative Programming for Verification: Lessons and Outlook Accepted Papers: ---------------- Veronique Benzaken, Giuseppe Castagna, Dario Colazzo and Cedric Miachon. Pattern by Example: type-driven visual programming of XML queries Lunjin Lu. Inferring Precise Polymorphic Type Dependencies in Logic Programs Olaf Chitil and Thomas Davie. Comprehending Finite Maps for Algorithmic Debugging of Higher-Order Functional Programs Christian Schulte and Peter Stuckey. Dynamic Variable Elimination during Propagation Solving Thibaut Feydy, Andreas Schutt and Peter Stuckey. Global Difference Constraint Propagation for Finite Domain Solvers Romain Pchoux and Jean-Yves Marion. Characterizations of polynomial complexity with a better intensionality rinus plasmeijer, Jan Martin Jansen, Pieter Koopman and Peter Achten. Declarative Ajax and Client Side Evaluation of Workflows using iTasks Peter Thiemann and Matthias Neubauer. Macros for Context-Free Grammars Yves Bertot and Vladimir Komendantsky. Fixed point semantics and partial recursion in Coq Martin Sulzmann and Edmund Lam. Parallel Execution of Multi-Set Constraint Rewrite Rules Raphael Chenouard, Laurent Granvilliers and Ricardo Soto. Model-Driven Constraint Programming Manuel Montenegro, Ricardo Pena and Clara Segura. A Type System for Safe Memory Management and its Proof of Correctness Hendrik Decker and Davide Martinenghi. Classifying Integrity Checking Methods with regard to Inconsistency Tolerance Mauro Piccolo and Luca Paolini. Semantically Linear Programming Languages Salvador Lucas and Jose Meseguer. Order-Sorted Dependency Pairs Edison Mera, Pedro Lopez-Garcia, Manuel Carro and Manuel Hermenegildo. Towards Execution Time Estimation in Abstract Machine-Based (Logic) Languages Clara Bertolissi and Maribel Fernandez. A rewriting framework for the composition of access control policies Michael Hanus. Call Pattern Analysis for Functional Logic Programs Sonia Est??vez, Antonio J. Fern??ndez, Teresa Hortal?? Gonz??lez, Mario Rodr??guez Artalejo, Fernando Saenz-Perez and Rafael del Vado V??rseda. Cooperation of Constraint Domains in the TOY System Brigitte Pientka and Joshua Dunfield. Programming with proofs and explicit contexts Rafael Caballero, Mario Rodr????guez Artalejo and Carlos A. Romero-D??az. Similarity-based Reasoning in Qualified Logic Programming Paulo F. Silva and Jose Oliveira. 'Galculator': Functional prototype of a Galois-connection based proof assistant Carlos Olarte and Frank D. Valencia. On the Expressivity of Universal Timed CCP: Undecidability of Monadic FLTL and Closure Operators for Security Jos?? Morales, Manuel Carro and Manuel Hermenegildo. Comparing Tag Scheme Variations Using an Abstract Machine Generator ORGANIZATION PROGRAM CHAIR: Sergio Antoy, Portland State University SYMPOSIUM CHAIR: Elvira Albert, Complutense University of Madrid LOCAL CHAIR: Christophe Joubert, Technical University of Valencia PROGRAM COMMITTEE: Elvira Albert Complutense University of Madrid, Spain Sergio Antoy Portland State University, USA Maribel Fernandez King's College London, UK Maurizio Gabbrielli University of Bologna, Italy Neil Ghani University of Nottingham, UK Masami Hagiya University of Tokyo, Japan Joxan Jaffar National University, Singapore Claude Kirchner INRIA Bordeaux, France Herbert Kuchen University of Muenster, Germany Michael Maher NICTA and University of New South Wales, Australia Dale Miller INRIA Saclay, France Eugenio Moggi University of Genova, Italy Kostis Sagonas Uppsala University, Sweden Carsten Schurmann, IT University of Copenhagen, Denmark Peter Sestoft IT University of Copenhagen, Denmark From wojtowicz.norbert at gmail.com Fri May 30 13:44:32 2008 From: wojtowicz.norbert at gmail.com (Norbert Wojtowicz) Date: Fri May 30 13:37:24 2008 Subject: [Haskell] Announce: hback - dual n-back memory game (0.0.2) Message-ID: I'm pleased to publically announce a little project I've worked on. Based on a recent research paper [0] that claims fluid intelligence could be improved by training working memory, I wrote up a dual n-back test memory game in Haskell and gtk2hs. This is still essentially an alpha release: all comments are most welcome. Original post (includes gameplay instructions): http://pithyless.com/blog/2008/05/18/hback-haskell-n-back-memory-game/ Updated version (overhaul of game with some feature updates): http://pithyless.com/blog/2008/05/30/hback-0_0_2/ Cabal file can be found on hackage: http://hackage.haskell.org/packages/archive/hback/0.0.2/hback-0.0.2.tar.gz [0] http://www.pnas.org/cgi/content/abstract/0801268105v1 From gwern0 at gmail.com Fri May 30 23:14:00 2008 From: gwern0 at gmail.com (Gwern Branwen) Date: Fri May 30 23:08:30 2008 Subject: [Haskell] Announce: hback - dual n-back memory game (0.0.2) In-Reply-To: <20080531031041.GA24784@craft> References: <20080531031041.GA24784@craft> Message-ID: <20080531031222.GA25038@craft> > On 2008.05.30 19:44:32 +0200, Norbert Wojtowicz scribbled 0.7K characters: > I'm pleased to publically announce a little project I've worked on. > Based on a recent research paper [0] that claims fluid intelligence > could be improved by training working memory, I wrote up a dual n-back > test memory game in Haskell and gtk2hs. This is still essentially an > alpha release: all comments are most welcome. > > Original post (includes gameplay instructions): > http://pithyless.com/blog/2008/05/18/hback-haskell-n-back-memory-game/ > > Updated version (overhaul of game with some feature updates): > http://pithyless.com/blog/2008/05/30/hback-0_0_2/ > > Cabal file can be found on hackage: > http://hackage.haskell.org/packages/archive/hback/0.0.2/hback-0.0.2.tar.gz > > [0] http://www.pnas.org/cgi/content/abstract/0801268105v1 This looks fairly interesting, but I think there are a few improvements you could make: * hback does not seem to work with GHC 6.8.x/split-base - I had to add some build-depends like time,random,unix,directory to build. * hback seems to need to be run in its source directory. For example, I installed and went to try it out: hback hback b n b is the number of tests [default=20] n determines the starting n-back test [default=1] (hback:24854): libglade-WARNING **: could not find glade file 'hback.glade' hback: Can't find the glade file "hback.glade" in the current directory It worked when I cded into ~/hback though. There is a nice way to handle this problem with Cabal, FWIW (I used it when packaging Nymphaea which had the same problem with glade files): . -- gwern Bletchley al-Askari erco AG. Bletchley DJC RG codes Operation Meta-hackers -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: Digital signature Url : http://www.haskell.org/pipermail/haskell/attachments/20080530/4cacf87c/attachment.bin From thomas.bevan at gmail.com Sat May 31 03:53:26 2008 From: thomas.bevan at gmail.com (Thomas Bevan) Date: Sat May 31 03:46:16 2008 Subject: [Haskell] Programme terminates silently Message-ID: <63ee83070805310053naa3cf9bg8d05c0adb391a5de@mail.gmail.com> Hi, I've written the programme below. The lircLoop should never terminate. Unfortunately it does. Worse, no error messages are generated. Not even the final line "Closing down" is printed. How is this possible? Thanks for your help. import Hmpf.Tree as T import Control.Concurrent hiding (forkIO) import Control.Exception import Prelude hiding (catch) import Hmpf.Fork import System.Log.Logger import System.Log.Handler.Simple import System.Log.Handler import System.IO import Network.MPD import Control.Monad.Trans (liftIO) main :: IO () main = do initializeLogging lirc <- newChan lcd <- newChan startLirc device lirc startLCD "localhost" 13666 lcd forkIO logger $ mpdLoop lcd mpd catch (lircLoop lirc lcd mpd) (\e -> errorM logger "Lirc loop died" >> (errorM logger (show e))) putStrLn "Closing down" -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/haskell/attachments/20080531/73695231/attachment.htm