Re: [Haskell-cafe] Haskell Platform 2013.2.0.0 64bit.pkg
My original problem was that I wanted to load a particular set of packages using 'cabal install'. It didn't work (cabal install issues) and while the maintainer reacted promptly and helpfully, cabal kept on trying to install the wrong version. Part of the problem was that blasting away ~/.cabal and ~/Library/Haskell wasn't enough: it's necessary to blast away ~/.ghc as well (which I had forgotten existed and of course never saw). * It would be handy if 'uninstall-hs' had an option, say * uninstall-hs --user * so that a user could in one step make it as if they had never * used the Haskell Platform. (Sigh. Changes to the GHC command line interface since 7.0 have broken one of the packages I used to have installed, and the maintainer's e-mail address doesn't work any more. And sometimes it seems as if every time I install anything with cabal something else breaks.) PS. Earlier today cabal gave me some confusing messages which turned out to mean 'GSL isn't installed'. Non-Haskell dependencies could be explained a little more clearly. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Testing invasive proposals with Hackager
Hi, Am Donnerstag, den 13.06.2013, 09:59 +0800 schrieb Niklas Hambüchen: In many discussions we make guesses about how much code proposals like Functor = Monad would break. You can use https://github.com/dterei/Hackager to build all of Hackage (preferably in a VM). Of course many packages have external dependencies, so I'd like to share the following list of packages to save you some time. Great tool. Does someone have the resources to run it regularly (i.e. daily), dump the results and the diff-to-previous run somewhere and link the status (currently building/not building) on the hackage package? More CI-like data and testing is always good! How much overlap is there between this tool and stackage? Greetings, Joachim -- Joachim “nomeata” Breitner m...@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nome...@joachim-breitner.de • GPG-Key: 0x4743206C Debian Developer: nome...@debian.org signature.asc Description: This is a digitally signed message part ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Testing invasive proposals with Hackager
2013/6/13 Joachim Breitner m...@joachim-breitner.de Hi, Am Donnerstag, den 13.06.2013, 09:59 +0800 schrieb Niklas Hambüchen: In many discussions we make guesses about how much code proposals like Functor = Monad would break. You can use https://github.com/dterei/Hackager to build all of Hackage (preferably in a VM). Of course many packages have external dependencies, so I'd like to share the following list of packages to save you some time. Great tool. Does someone have the resources to run it regularly (i.e. daily), dump the results and the diff-to-previous run somewhere and link the status (currently building/not building) on the hackage package? More CI-like data and testing is always good! I will give it a try in a few days, see if it is possible for me to do it daily. Thu ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANN: Angel 0.4.2
On 13 Jun 2013 06:51, Michael Xavier mich...@michaelxavier.net wrote: I'm pleased to announce the release of Angel 0.4.2 and that I have officially taken over maintainership of this project. Thanks to Jamie Turner for starting such a great project and allowing me to take over this project. Hi Michael, great to hear Angel is still active! Its a great project, so I wish you good luck as the new maintainer. Thanks for your work! - ocharles ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Testing invasive proposals with Hackager
2013/6/13 Vo Minh Thu not...@gmail.com 2013/6/13 Joachim Breitner m...@joachim-breitner.de Hi, Am Donnerstag, den 13.06.2013, 09:59 +0800 schrieb Niklas Hambüchen: In many discussions we make guesses about how much code proposals like Functor = Monad would break. You can use https://github.com/dterei/Hackager to build all of Hackage (preferably in a VM). Of course many packages have external dependencies, so I'd like to share the following list of packages to save you some time. Great tool. Does someone have the resources to run it regularly (i.e. daily), dump the results and the diff-to-previous run somewhere and link the status (currently building/not building) on the hackage package? More CI-like data and testing is always good! I will give it a try in a few days, see if it is possible for me to do it daily. Thu I just read this note on Hackager's README: For example, here is a run with GHC, no special options and using 4 threads (note that this generally takes a long time, i.e. a few days): ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Testing invasive proposals with Hackager
On 13/06/13 10:06, Conrad Parker wrote: How do we add packages to the list; do you have a github repo for it? I've put it on haskell-pkg-janitors: https://github.com/haskell-pkg-janitors/hackage-build-deps/blob/master/ubuntu-13.04.txt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Testing invasive proposals with Hackager
On 13/06/13 18:36, Vo Minh Thu wrote: For example, here is a run with GHC, no special options and using 4 threads (note that this generally takes a long time, i.e. a few days): My builds finished in 10 hours on an i7. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Automating Hackage accounts
Could we add an HTML form for creating new Hackage accounts? Right now, our community is small enough that emailing r...@soi.city.ac.uk and waiting for a manual response isn't too bad of a problem, but as we grow, it would be nice for these sorts of things to be handled by a server, like with RubyGems and NPM. -- Cheers, Andrew Pennebaker www.yellosoft.us ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automating Hackage accounts
On Thu, Jun 13, 2013 at 09:44:03AM -0400, Andrew Pennebaker wrote: Could we add an HTML form for creating new Hackage accounts? Right now, our community is small enough that emailing r...@soi.city.ac.uk and waiting for a manual response isn't too bad of a problem, but as we grow, it would be nice for these sorts of things to be handled by a server, like with RubyGems and NPM. IMHO, a more pressing issue is SSL uploads and package signing. As it stands, anyone with a Hackage account can upload a new version of any given package, and some wire-sniffing is enough to reveal a legit user's password. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automating Hackage accounts
On Thu, Jun 13, 2013 at 5:02 PM, Tobias Dammers tdamm...@gmail.com wrote: On Thu, Jun 13, 2013 at 09:44:03AM -0400, Andrew Pennebaker wrote: Could we add an HTML form for creating new Hackage accounts? Right now, our community is small enough that emailing r...@soi.city.ac.uk and waiting for a manual response isn't too bad of a problem, but as we grow, it would be nice for these sorts of things to be handled by a server, like with RubyGems and NPM. IMHO, a more pressing issue is SSL uploads and package signing. As it stands, anyone with a Hackage account can upload a new version of any given package, and some wire-sniffing is enough to reveal a legit user's password. I'd try to solve the latest two things first before going into creating a specific form. On the other hand, maybe we can rig something up with Yesod or similar to solve all three points at the same time. I'm busy now with my masters disertation but I can attempt something in a month if it seems ok and no one else does it before that date. -- MM All we have to decide is what we do with the time that is given to us ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automating Hackage accounts
On Thu, Jun 13, 2013 at 05:07:38PM +0300, Mihai Maruseac wrote: On Thu, Jun 13, 2013 at 5:02 PM, Tobias Dammers tdamm...@gmail.com wrote: On Thu, Jun 13, 2013 at 09:44:03AM -0400, Andrew Pennebaker wrote: Could we add an HTML form for creating new Hackage accounts? Right now, our community is small enough that emailing r...@soi.city.ac.uk and waiting for a manual response isn't too bad of a problem, but as we grow, it would be nice for these sorts of things to be handled by a server, like with RubyGems and NPM. IMHO, a more pressing issue is SSL uploads and package signing. As it stands, anyone with a Hackage account can upload a new version of any given package, and some wire-sniffing is enough to reveal a legit user's password. I'd try to solve the latest two things first before going into creating a specific form. On the other hand, maybe we can rig something up with Yesod or similar to solve all three points at the same time. I'm busy now with my masters disertation but I can attempt something in a month if it seems ok and no one else does it before that date. IIRC, there have been previous attempts, or at least a discussion. I can't remember what the result was, though. Either way, it'll take more than just a Yesod web application built over a weekend; signed packages would require package authors to, well, sign, so cabal would need features for that; you'd also have to extend it to *check* those signatures, and give the user options to refuse or allow unsigned packages. SSL should be relatively simple though, mostly a matter of updating cabal's configuration and installing a suitable certificate on the hackage server. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automating Hackage accounts
On Thu, Jun 13, 2013 at 4:22 PM, Tobias Dammers tdamm...@gmail.com wrote: On Thu, Jun 13, 2013 at 05:07:38PM +0300, Mihai Maruseac wrote: On Thu, Jun 13, 2013 at 5:02 PM, Tobias Dammers tdamm...@gmail.com wrote: On Thu, Jun 13, 2013 at 09:44:03AM -0400, Andrew Pennebaker wrote: Could we add an HTML form for creating new Hackage accounts? Right now, our community is small enough that emailing r...@soi.city.ac.uk and waiting for a manual response isn't too bad of a problem, but as we grow, it would be nice for these sorts of things to be handled by a server, like with RubyGems and NPM. IMHO, a more pressing issue is SSL uploads and package signing. As it stands, anyone with a Hackage account can upload a new version of any given package, and some wire-sniffing is enough to reveal a legit user's password. I'd try to solve the latest two things first before going into creating a specific form. On the other hand, maybe we can rig something up with Yesod or similar to solve all three points at the same time. I'm busy now with my masters disertation but I can attempt something in a month if it seems ok and no one else does it before that date. IIRC, there have been previous attempts, or at least a discussion. I can't remember what the result was, though. Either way, it'll take more than just a Yesod web application built over a weekend; signed packages would require package authors to, well, sign, so cabal would need features for that; you'd also have to extend it to *check* those signatures, and give the user options to refuse or allow unsigned packages. SSL should be relatively simple though, mostly a matter of updating cabal's configuration and installing a suitable certificate on the hackage server. There have been numerous discussions about this already. One of the tricky things is that cabal uses the HTTP package for http calls, and it doesn't support SSL. Adding it is non-trivial on windows, I believe. As for the user account creation and uploading packages you don't own, Hackage 2 (any day now) has fixes for both. Erik ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automating Hackage accounts
As for the user account creation and uploading packages you don't own, Hackage 2 (any day now) has fixes for both. Does Hackage 2 have SSL at least for the web interface? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automating Hackage accounts
On Thu, Jun 13, 2013 at 10:48 AM, Niklas Hambüchen m...@nh2.me wrote: As for the user account creation and uploading packages you don't own, Hackage 2 (any day now) has fixes for both. Does Hackage 2 have SSL at least for the web interface? Doesn't look like it. :( -- brandon s allbery kf8nh sine nomine associates allber...@gmail.com ballb...@sinenomine.net unix, openafs, kerberos, infrastructure, xmonadhttp://sinenomine.net ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automating Hackage accounts
On Thu, Jun 13, 2013 at 4:48 PM, Niklas Hambüchen m...@nh2.me wrote: As for the user account creation and uploading packages you don't own, Hackage 2 (any day now) has fixes for both. Does Hackage 2 have SSL at least for the web interface? I think it should be possible to set that up by proxying through e.g. Apache. You have to be careful to open up all urls 'cabal' accesses over http as well, but otherwise, I don't see a problem with that setup. I'm not quite sure what it would achieve, though. Erik ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] ANN: custom-hackage
https://github.com/nh2/custom-hackage An (almost trivial) script to generate 00-index.tar.gz which is necessary to run your own `remote-repo`. If you are a company that has to rely on that not everybody with a Hackage account can run arbitrary code on your computer at your next cabal install, and you want to make available only select versions of packages (as opposed to a full hackage mirror), this is for you. Just drop your tars into the directory structure, run the script and serve it over HTTP. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automating Hackage accounts
I'm not quite sure what it would achieve, though. That if I want to upload something without my password going over in plain text, I can at least use the file upload form. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automating Hackage accounts
No idea, But if not, it should be trivial to add support. The two main issues would be getting an SSL certificate (if one does not already exist) and then making sure that the links do not hardcode the schema. So // hackage.haskell.org/foo instead of http://hackage.haskell.org/. Then the site can be served using simpleHTTPS instead of simpleHTTP. - jeremy On Thu, Jun 13, 2013 at 9:48 AM, Niklas Hambüchen m...@nh2.me wrote: As for the user account creation and uploading packages you don't own, Hackage 2 (any day now) has fixes for both. Does Hackage 2 have SSL at least for the web interface? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Testing invasive proposals with Hackager
I was thinking about something similar some time ago, but not just testing but also fixing things automatically. Taking for example Semigroup = Monoid this would break in places where you have instance for Monoid but don't have instance for Semigroup. But if you have instance for Monoid making instance for Semigroup is straightforward: instance Semigroup TypeYouAreFixing where () = copy code from mappend for that type I'm still kind of new to Haskell, so I'm not sure how hard such, TemplateHaskell-like automagic migration tool, would be to make, but I feel like such a tool would be of incredible importance for the community. Because otherwise, without such thing, there are usually two ways a language can evolve: 1. Caring for backwards compatibility, and accumulating mistakes like that over time, and becoming more and more like crap. 2. Making fixes that break everyones code, and because of that being ignored by the industry. I like Haskell because it usually takes the second route, but as community grows it will be less and less the case. With such a tool you could have best of both worlds. Though I assume that somebody already thought of that and come to the conclusion that in general case you cannot make such tool because Gödel is a bastard that breaks everyones toys, or something along this lines. On Thu, Jun 13, 2013 at 12:54 PM, Niklas Hambüchen m...@nh2.me wrote: On 13/06/13 18:36, Vo Minh Thu wrote: For example, here is a run with GHC, no special options and using 4 threads (note that this generally takes a long time, i.e. a few days): My builds finished in 10 hours on an i7. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Testing invasive proposals with Hackager
Roman Cheplyaka has written a tool called HasFix for updating source based on new versions of libraries. The presentation on it is here http://ro-che.info/docs/ and the code is at https://github.com/feuerbach/hasfix Perhaps it could be pressed into use for automatic update of historical code? Alan On Thu, Jun 13, 2013 at 6:30 PM, Maksymilian Owsianny maksymilian.owsia...@gmail.com wrote: I was thinking about something similar some time ago, but not just testing but also fixing things automatically. Taking for example Semigroup = Monoid this would break in places where you have instance for Monoid but don't have instance for Semigroup. But if you have instance for Monoid making instance for Semigroup is straightforward: instance Semigroup TypeYouAreFixing where () = copy code from mappend for that type I'm still kind of new to Haskell, so I'm not sure how hard such, TemplateHaskell-like automagic migration tool, would be to make, but I feel like such a tool would be of incredible importance for the community. Because otherwise, without such thing, there are usually two ways a language can evolve: 1. Caring for backwards compatibility, and accumulating mistakes like that over time, and becoming more and more like crap. 2. Making fixes that break everyones code, and because of that being ignored by the industry. I like Haskell because it usually takes the second route, but as community grows it will be less and less the case. With such a tool you could have best of both worlds. Though I assume that somebody already thought of that and come to the conclusion that in general case you cannot make such tool because Gödel is a bastard that breaks everyones toys, or something along this lines. On Thu, Jun 13, 2013 at 12:54 PM, Niklas Hambüchen m...@nh2.me wrote: On 13/06/13 18:36, Vo Minh Thu wrote: For example, here is a run with GHC, no special options and using 4 threads (note that this generally takes a long time, i.e. a few days): My builds finished in 10 hours on an i7. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Testing invasive proposals with Hackager
Hmm... I'll have to look into it, but it looks promising. Now if we could make hackage run such fixes automatically whilst sending pull requests to authors... then maybe we could even fix The Great Num Fiasco of 98. On Thu, Jun 13, 2013 at 8:45 PM, AlanKim Zimmerman alan.z...@gmail.comwrote: Roman Cheplyaka has written a tool called HasFix for updating source based on new versions of libraries. The presentation on it is here http://ro-che.info/docs/ and the code is at https://github.com/feuerbach/hasfix Perhaps it could be pressed into use for automatic update of historical code? Alan On Thu, Jun 13, 2013 at 6:30 PM, Maksymilian Owsianny maksymilian.owsia...@gmail.com wrote: I was thinking about something similar some time ago, but not just testing but also fixing things automatically. Taking for example Semigroup = Monoid this would break in places where you have instance for Monoid but don't have instance for Semigroup. But if you have instance for Monoid making instance for Semigroup is straightforward: instance Semigroup TypeYouAreFixing where () = copy code from mappend for that type I'm still kind of new to Haskell, so I'm not sure how hard such, TemplateHaskell-like automagic migration tool, would be to make, but I feel like such a tool would be of incredible importance for the community. Because otherwise, without such thing, there are usually two ways a language can evolve: 1. Caring for backwards compatibility, and accumulating mistakes like that over time, and becoming more and more like crap. 2. Making fixes that break everyones code, and because of that being ignored by the industry. I like Haskell because it usually takes the second route, but as community grows it will be less and less the case. With such a tool you could have best of both worlds. Though I assume that somebody already thought of that and come to the conclusion that in general case you cannot make such tool because Gödel is a bastard that breaks everyones toys, or something along this lines. On Thu, Jun 13, 2013 at 12:54 PM, Niklas Hambüchen m...@nh2.me wrote: On 13/06/13 18:36, Vo Minh Thu wrote: For example, here is a run with GHC, no special options and using 4 threads (note that this generally takes a long time, i.e. a few days): My builds finished in 10 hours on an i7. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Testing invasive proposals with Hackager
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 13/06/13 23:13, Maksymilian Owsianny wrote: Hmm... I'll have to look into it, but it looks promising. Now if we could make hackage run such fixes automatically whilst sending pull requests to authors... then maybe we could even fix The Great Num Fiasco of 98. I don't know about automatic pull requests (perhaps e-mail to the maintainer with a patch is a far better and easier to implement idea) but something to let maintainers know that their package no longer builds on GHC HEAD (per request of the maintainer) or with a new proposal in place would be a very useful tool to have. - -- Mateusz K. -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.19 (GNU/Linux) iQIcBAEBAgAGBQJRuk0qAAoJEM1mucMq2pqX0IAQAINWmBK4ZI62+zPkEkyH9lGh hs0Hb876GOv/BJBGiVAzttWjeuMXTiUGrNcc+ZH6AKxiSmaVBBAqNdvFWAIobGY0 6WfHWF6gqUtidY4dboQXGg6vWRw2ONaD7yH9CUbpTSUVb9zFBKO/OLc+4i41vrwZ 0ZCx4lNZiM0MvBtnyJTuEkUb0hYeAW1ty32gFEEwNwqeInyGXr77TElXCVyXUOXC BpW+pZv7AeCnuQZQpTZKTGQd40SCv0byrn6frFB+kZBJVO/Qga7/6DhbXDuuke07 VjG9Jt7EMmqFy6E2UZMZZYjU6k7g/brUkylV0SDBVheeWpJpxId9eFXuyYQAhpBf y/sjW9p7PcvPBESTXi7sjQtq/qY3gwdc0tZXbrgEBzhkWj4XYojJ4SxsULTkmPPo NWjCYmaFgV84ODtedsekNP5n1pJZCD+HPZWkIKw24lJvhT/MoG0Yj2EsMt2h/VZR U7M5tk5/XhjC4s9JeXdfNk3TdX6SccRT0a1cqxpOznZGR3jDwSjbN9dLu77k7r1w LQ6NVZJvYo0IRDs6KhxBS0UpvRKxSUcNRvlgamtUbNGhRGHmHCTN5BQY/4DrYpZo LEtZjtdM9Ndj8FBwzyfzeOLzDKCpn2uOAT2MoiHBgq0pM3WhNNHOxBH3cJSony0l tbuiW4Mj83vL1rYthXDR =g9we -END PGP SIGNATURE- ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automating Hackage accounts
Most of the issues raised here indeed are addressed in Hackage2 already, or are planned to be. Too few people working on it though. See the Hackage mess section in [1] for more info on Hackage2 and [2] to see the running instance. [1] http://alpmestan.com/2012/11/02/cabal-hackage-what-you-can-do-about-it/ [2] http://new-hackage.haskell.org On Thu, Jun 13, 2013 at 5:13 PM, Jeremy Shaw jer...@n-heptane.com wrote: No idea, But if not, it should be trivial to add support. The two main issues would be getting an SSL certificate (if one does not already exist) and then making sure that the links do not hardcode the schema. So // hackage.haskell.org/foo instead of http://hackage.haskell.org/. Then the site can be served using simpleHTTPS instead of simpleHTTP. - jeremy On Thu, Jun 13, 2013 at 9:48 AM, Niklas Hambüchen m...@nh2.me wrote: As for the user account creation and uploading packages you don't own, Hackage 2 (any day now) has fixes for both. Does Hackage 2 have SSL at least for the web interface? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Haskell for Programmers Workshop: Denver, Colorado
Since this is shameless self-promotion I'll keep it short. I'm teaching a Haskell workshop for imperative programmers in Denver, Colorado, September 16-18. If you want more information please take a look at the workshop website: http://www.devalot.com/workshops/haskell/index.html -- Peter Jones --- Love to Develop Devalot: http://www.devalot.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe