Re: [Haskell-cafe] Missing comment highlighting in vim syntax script

2008-12-15 Thread Arthur van Leeuwen


On 14 dec 2008, at 19:04, Claus Reinke wrote:


The Haskell syntax script for vim mentions this mailing list as the
maintainer. Perhaps one of you could fix this bug.
Comments on the same line as import declarations don't get  
highlighted:


I don't know how this list-as-maintainer idea is going to work,
but the fix seems straightforward: find the line in $VIMRUNTIME/ 
syntax/haskell.vim that says


  syn match hsImport  \import\.*he=s+6 contains=hsImportMod

and change it to

  syn match hsImport  \import\.*he=s+6  
contains=hsImportMod,hsLineComment,hsBlockComment


See :help syn-contains.


Good fix. Have also modified my copy and forwarded the patch to
the vim maintainer.

With kind regards, Arthur van Leeuwen.

--

Arthur van Leeuwen
arthu...@cs.uu.nl



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Data.Map add only if not exist and return true if added

2008-12-09 Thread Arthur van Leeuwen


On 9 dec 2008, at 09:11, John Ky wrote:


Hi,

I'm looking for a function for Data.Map that will insert a new key  
and value into the map if the key doesn't already exist in the map.   
When the key already exists, I don't want the value updated in the  
map.  Additionally, I want to know whether the key/value was  
inserted or not so that I can return that fact as a boolean from my  
function.


I can't work out which function in Data.Map is suitable for this  
task and I wanted to avoid two lookups.


Data.Map.insertLookupWithKey (\k n o - o)
should do the trick. The first element of the tuple returned
is the Maybe a that is Nothing if no value existed at the given key,
the second element is the updated map.

With kind regards, Arthur.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Human-friendly compiler errors for GHC

2008-07-14 Thread Arthur van Leeuwen


On 13 jul 2008, at 15:36, Max Bolingbroke wrote:

[snip, patches towards friendlier error messages in GHC]


Then again, we don't do fuzzy matching, only completion
of partial identifiers and suggesting possible qualified
names and imports for unqualified ones.


Agreed: doing fuzzy matching on every available identifier from all
packages would truly suck. I would propose just looking for exact
matches in non-imported modules for identifiers that are not in scope.


The approach taken by Helium (which doesn't quite do full Haskell''98  
yet)
is to not just do fuzzy matching, but to figure out if the identifiers  
that

were fuzzily matched also have the right type. For more info, read
Bastiaan Heeren's PhD Thesis: Top Quality Type Error Messages.
available at http://people.cs.uu.nl/bastiaan/phdthesis/


Well, noone has actually said they think fuzzy matching would be
useful yet, so I suspect this patch is dead on the vine :). I've filed
a ticket with the code anyway
(http://hackage.haskell.org/trac/ghc/ticket/2442) so at least it's
available for others to look at.


More help is very much useful. However, there are different use cases
that imply different types of help and diffent types of searching.

With kind regards, Arthur van Leeuwen.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
 /__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] lhs syntax highlighting in vim

2008-07-01 Thread Arthur van Leeuwen


On 11 jun 2008, at 12:29, Ian Lynagh wrote:


On Wed, Jun 11, 2008 at 01:23:58AM +0100, Eric Stansifer wrote:


The syntax highlighting file for literate haskell in vim says that  
its

maintainer is haskell-cafe@haskell.org, so hopefully one of you will
find this relevant.

In literate haskell files, vim optionally highlights the non-code  
text

according to TeX markup.  The syntax highlighting file looks for key
phrases (e.g., \documentclass) to decide whether to use TeX markup
highlighting;  but it (erroneously, in my opinion, and at variance
with the documentation) will use TeX markup highlighting on any lhs
file that contains the '%' character anywhere in it.  The bug is in
line 74 of version 1.01 of the lhaskell.vim syntax highlighting file.


I agree that this is wrong. It used to only look at the first 20  
lines,

so we were covering the case where a TeX file began with some TeX
comments. We'd also look for ^\s*%, rather than a % anywhere. If we  
are

going to look at the whole file then checking for comments isn't
necessary.


Unfortunately that scan is not necesarily compatible with people
dynamically turning on syntax highlighting. But just searching for %
is *dead* wrong, I fully agree. I've modified the search code and  
submitted

a patch to the Vim maintainers.

With kind regards, Arthur van Leeuwen.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
 /__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: Sillyness in the standard libs.

2007-11-29 Thread Arthur van Leeuwen


On 29-nov-2007, at 14:44, Simon Marlow wrote:


Brandon S. Allbery KF8NH wrote:

On Nov 19, 2007, at 16:06 , Arthur van Leeuwen wrote:
here is a puzzle for you: try converting a  
System.Posix.Types.EpochTime into either a
System.Time.CalendarTime or a Data.Time.Clock.UTCTime without  
going through

read . show or a similar detour through strings.
fromEnum and/or toEnum are helpful for this kind of thing, and I  
am occasionally tempted to bind cast = toEnum . fromEnum because  
I need it so much.


Let's ignore System.Time since it's obsoleted by Data.Time.


Yes. That's what I wanted to do at first. :)

I just spent a little while trying to solve this puzzle, and it  
turns out there *is* a right way to do this: for t :: EpochTime,


  posixSecondsToUTCTime (fromRational (toRational t) :: POSIXTime)


Which, unfortunately, does not work with time-1.1.1 which is in GHC  
6.6.1.

Going through Rational is the right solution, though. My hackish
detour was to use fromIntegral . toInteger . fromEnum


You want to go via Data.Time.Clock.POSIXTime, because that's what  
an EpochTime is.   Now, EpochTime does not have an Integral  
instance, because it is the same as C's time_t type, which is not  
guaranteed to be an integral type.  You have fromEnum, but that  
would be a hack: there's no guarantee that EpochTime fits in an  
Int, and if EpochTime is a fractional value you lose information.   
But you *can* convert to a Rational with toRational, and from there  
you can get to a POSIXTime with fromRational (also realToFrac would  
do).


It turns out there are good reasons for all this, it just ends up  
being quite obscure.  I'll put the above formula in the docs.


Yes, that would be good! Note that both the docs for DiffTime and  
EpochTime state that
they contain seconds, and both are somewhat unclear as to whether  
they contain any

higher precision than whole seconds.

With kind regards, Arthur.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Sillyness in the standard libs.

2007-11-19 Thread Arthur van Leeuwen

LS,

here is a puzzle for you: try converting a  
System.Posix.Types.EpochTime into either a
System.Time.CalendarTime or a Data.Time.Clock.UTCTime without going  
through

read . show or a similar detour through strings.

The problem comes up when trying to easily nicely display the access,  
modification
or status change times of a full directory of files, using  
System.Posix.Files.Filestatus

to get at the times.

A closely related issue: fromIntegral is in Integral which also  
requires quotRem. However,
	the two are semantically quite disjoint. I can *easily* see the  
semantics of fromIntegral
	on EpochTime, but not the semantics of quotRem on EpochTime. Having  
fromIntegral

would solve the above puzzle... :)

With kind regards, Arthur.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Building Haskell stuff on Windows

2007-11-08 Thread Arthur van Leeuwen


On 7-nov-2007, at 18:38, Duncan Coutts wrote:


On Wed, 2007-11-07 at 17:34 +0100, Arthur van Leeuwen wrote:

Hello all,

maybe I'm just not used enough to Windows, but let me explain my  
woes of

today. It seems to me to be *much* too hard to get a full install of
GHC + GTK2Hs
going on Windows, going from the idea that I want the currently
released stable versions of everything.


It is far too hard. For one thing the released tarball does not build
with ghc-6.8.1. That's why I'm working on a new point release.


- ran configure
- discovered I needed happy (this was not documented!)


Hmm, that's not right. The gtk2hs tarballs come with the lexer and
parser pre generated. The configure script checks for alex and  
happy but
does not (should not) fail if they're not present and the pre- 
generated

code is present. I certainly build on a windows server where alex and
happy are not installed.


Well, honestly, that was a bit of a fib: the tarball's configure did  
in fact

not break on alex and haskell. Just the development version did.


- discovered gtk2hs 0.9.12 hides 'containers'


That's the bit where we notice gtk2hs-0.9.12 was released well before
ghc-6.8.1 and thus does not work with it. Every non-trivial package
needs updating in various minor ways to work with ghc-6.8.1.


Yup. No surprises there.


- broke down and darcs got gtk2hs development tree
- installed automake
- ran autoreconf


I've never managed to get automake to work on windows. I always  
generate
tarballs under linux and then build them on windows. This also  
allows me

to avoid installing happy/alex on windows.


Well, I didn't have any Unix available at that point, so I kinda had to,
even though I remembered the world of pain that is autoconf and  
automake.



- discovered automake for MSYS 1.0.10 is too old
- installed automake-1.9
- ran aclocal-1.9
- ran autoconf
- ran configure
- discovered I need to explicitly add GTK libs to aclocal
- ran aclocal-1.9 -I with GTK library path
- ran autoconf


Wow, it actually worked did it?


It did. After an hour's worth of convincing that it really could  
work, and
remembering that autoreconf really only calls other parts of the  
autotools,

that you can also call by hand.


- ran configure for gtk2hs
- ran make


Oh good, glad that bit works :-)


Yeah, if you make sure not to have any binaries in paths with embedded
spaces... ;)


- complained on IRC
- ran make install


I expect it fails in the package registration stage right? Yes, I  
never

do that, I always build images for the installer and never install
direct, so that path is probably bit-rotted.


No. It actually installed. However, building binaries against the  
installed

gtk2hs then fails with a linker error...


- sighed deeply

Ofcourse, on complaining I learned that hackage contains alex 2.2,
rather than 2.10, but that is not apparent from the alex webpages. It
seems to me that much of this is way too hard to figure out...
figuring out the dependency graph should not be necessary, as the
developers should know what parts go into their code!


Yes it is too hard. In the case of Gtk2Hs I think it'll be easier when
Gtk2hs changes to use Cabal for it's build system. Then it will not
require mingw/msys which should improve things dramatically.


Should it? I think the big issue is autoconf rather than MSYS, and
path troubles related to make and configure... and while this is  
slightly

less painful on Unix systems it still hurts quite a bit, even there.


Furthermore, as much as I applaud hackage, it is not ready for use,
as it does not afford things you might want, such as searching for
latest (stable) releases of packages.


Yes, there is nothing to distinguish latest from stable. With
sufficiently accurate deps I think this is solvable, and perhaps the
ability to tweak the deps after a package is released (to tighten them
if they were too lax for example).


That would be nice, but having the status bits would be even better.
It makes distinguishing between 'this can be used in production code'
and 'this is for the brave, beware of lions' possible. Just having  
the dependencies
doesn't. And the distinction is a strong necessity when actually  
using Haskell...



Plus, it is still not the default go-to place for many things.


That's changing reasonably quickly. Especially if you put pressure on
maintainers of packages that you get from anywhere other than hackage.
Repeat the mantra if it's not on hackage it doesn't exist.


Ah, yes, that is a thing. However, googling for alex does not lead me
to hackage, nor does the alex webpage. Ditto for Happy.


Maybe developers that decide to put their most recent versions on
hackage could document that on the main webpages of their code? (I've
ran into this with FileManip as well, not just with Alex).


Good idea.

So

[Haskell-cafe] Building Haskell stuff on Windows

2007-11-07 Thread Arthur van Leeuwen

Hello all,

maybe I'm just not used enough to Windows, but let me explain my woes of
today. It seems to me to be *much* too hard to get a full install of  
GHC + GTK2Hs
going on Windows, going from the idea that I want the currently  
released stable

versions of everything.

So, this is the way I progressed (from a clean Windows install):
- Installed MinGW 5.1.3
- Installed MSYS 1.0.10
- Installed GHC 6.8.1
- edit /etc/fstab in MSYS to correctly bind MinGW
- Installed gtk-dev-2.10.11-win32-1
- Downloaded gtk2hs-0.9.12.tar.gz
- cd /d/haskell/gtk2hs-0.9.12
- ran configure
- discovered I needed happy (this was not documented!)
- Downloaded happy-1.17.tar.gz
- unpacked, configured, built, installed
- ran configure for gtk2hs
- discovered I needed alex (this was not documented!)
- Downloaded alex-2.10.tar.gz
	- Setup.lhs of alex-2.10 did not compile due importing  
Distribution.Simple(compilerPath)

- Installed darcs
- darcs got alex development tree
- Setup.lhs of alex-2.10 compiled
- building alex-2.10 failed due to wishing an existing alex
- broke down and downloaded alex-2.10 binaries
- installed alex-2.10 next to happy in C:\Program Files\Haskell\bin
- ran configure for gtk2hs
- ran make
	- discovered alex should not be in C:\Program Files as make breaks  
on paths with embedded spaces...

- copied C:\Program Files\Haskell to C:\Haskell and modified $PATH
- reran configure for gtk2hs
- ran make
- discovered gtk2hs 0.9.12 hides 'containers'
- broke down and darcs got gtk2hs development tree
- installed automake
- ran autoreconf
- discovered automake for MSYS 1.0.10 is too old
- installed automake-1.9
- ran aclocal-1.9
- ran autoconf
- ran configure
- discovered I need to explicitly add GTK libs to aclocal
- ran aclocal-1.9 -I with GTK library path
- ran autoconf
- ran configure for gtk2hs
- ran make
- complained on IRC
- ran make install
- sighed deeply

Ofcourse, on complaining I learned that hackage contains alex 2.2,  
rather than 2.10,
but that is not apparent from the alex webpages. It seems to me that  
much of this
is way too hard to figure out... figuring out the dependency graph  
should not be

necessary, as the developers should know what parts go into their code!

Furthermore, as much as I applaud hackage, it is not ready for use,  
as it does not
afford things you might want, such as searching for latest (stable)  
releases of packages.
Plus, it is still not the default go-to place for many things. Maybe  
developers that decide
to put their most recent versions on hackage could document that on  
the main webpages
of their code? (I've ran into this with FileManip as well, not just  
with Alex).


With kind regards, Arthur.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Building Haskell stuff on Windows

2007-11-07 Thread Arthur van Leeuwen


On 7-nov-2007, at 17:43, Neil Mitchell wrote:


Hi Arthur,

The correct steps to take are:

1) install GHC from the windows installer - trivial
2) install Gtk2hs from the windows installer

Unfortunately Gtk2hs hasn't been updated to work with GHC 6.8.1, so
step 2 will fail. The person who is going to do this is Duncan. He
usually breaks down and does this once people start complaining on the
mailing list.


- Installed MinGW 5.1.3


Generally, if you have to install MinGW you can pretty much guarantee
that something somewhere is going to go wrong - not enough people test
this route to make it reliable.


Actually, the MinGW/MSYS thing was also necessary for another package  
that
I needed, plus, the GTK2Hs build instructions explicitly state that  
you need it.


Oh, and I *definitely* liked the vim and bash that I got from it. No  
cmd.exe

and it's odd syntax for me! :)


Windows and Haskell is not a well travelled route, but if you stray of
the cuddly installer packages, it gets even worse.


But it shouldn't. Really it shouldn't. Even though Windows is not my
preferred platform, it is by no means different enough to warrant such
additional complexity. Plus, GHC is developed at Microsoft, and the
currently most featureful Haskell IDE is on Windows...

With kind regards, Arthur. (Who will surely do more Windows development
with Haskell soonish)

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: Building production stable software in Haskell

2007-09-18 Thread Arthur van Leeuwen


On 18-sep-2007, at 14:10, Simon Marlow wrote:


Adrian Hey wrote:

Neil Mitchell wrote:

Hi


They are less stable and have less quality control.
Surely you jest? I see no evidence of this, rather the contrary  
in fact.


No, dead serious. The libraries have a library submission process.

It does not follow that libraries that have not been submitted
to this process are less stable and have less quality control. Nor
does it follow that libraries that have been through this submission
process are high quality, accurately documented, bug free and  
efficient

(at least not ones I've looked at and sometimes even used).


Adrian's right - the set of libraries that are shipped with GHC is  
essentially random.  A bit of history:


Originally we shipped pretty much all freely-available non-trivial  
Haskell libraries with GHC.  At some point (about 5 years ago or  
so) the number of Haskell libraries started to grow beyond what we  
could reasonably ship with GHC, and some of them were providing  
duplicate functionality, so we stopped adding to the set.  We made  
a few small exceptions (e.g. filepath) for things that we felt  
really should be in the default GHC install, but to a large extent  
the set of libraries that are shipped with GHC has remained  
constant over the last 3 major releases.


In 6.6, we made a nomenclature change: we divided the packages  
shipped with GHC into two: those that are required to bootstrap  
GHC (the boot libraries, until recently called the core  
libraries), and the others that we just include with a defualt  
binary install (the extra libraries).  On some OSs, e.g. Debian,  
Ubuntu, Gentoo, you don't even get the extra libraries by  
default.  This was intended to be a stepping stone to decoupling  
GHC from these libraries entirely, which is possible now that we  
have Cabal and Hackage.


What I'm getting around to is that being shipped with GHC is not  
a category that has any particular meaning right now.  I think it's  
time the community started to look at what libraries we have in  
Hackage, and identify a subset that we should consider standard  
in some sense - that is, those to which the library submission  
process applies, at the least. If there were such a set, we could  
easily make GHC's extra libraries equal to it.


Ofcourse, now we hit the situation that Eclipse is in as well:
everything worthwhile should be downloaded next to the base
functionality. This has lead to many slightly differing distributions
of Eclipse. The same problem occurs with Linux distributions...

I personally always liked Python's 'batteries included' approach.
Python comes with enough libs standard to be genuinely useful.
This, I think, is a good model from a marketing point of view.

With regards, Arthur.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] RLE in Haskell: why does the type variable get instantiated?

2007-07-31 Thread Arthur van Leeuwen


On 31-jul-2007, at 11:38, Chris Eidhof wrote:


Hey Haskell-Cafe,

I was trying out the code in Dons's article [1], and I noticed a  
weird thing when doing it in GHCi. When binding the function  
composition to a variable, the type suddenly changes. I'm not  
completely sure why this happens. Is this because GHCi is in a  
monad and wants to find an instance for the type variable?


Yes, that is mostly correct. GHCi does defaulting of types, and in  
this case

the type variable defaults to Integer.

With regards, Arthur.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] RE: haskell for web

2007-07-18 Thread Arthur van Leeuwen


On 18-jul-2007, at 14:09, Marc Weber wrote:


On Tue, Jul 17, 2007 at 03:27:20PM -0700, brad clawsie wrote:

On Wed, Jul 18, 2007 at 12:17:12AM +0200, Hugh Perkins wrote:

On 7/17/07, Martin Coxall [EMAIL PROTECTED] wrote:


I wonder why 'we' aren't pushing things like this big time. When  
Ruby

took off, more than anything else it was because of Rails.


i agree that web programming is a domain that cannot be ignored

i have wondered what it would take to get a mod_haskell for apache


Asking google and the wiki search?
http://haskell.org/haskellwiki/News/1999
http://losser.st-lab.cs.uu.nl/mod_has (v0.1.7, 14 January 2000)

But I haven't checked how up to date those sources are.


Not at all. Eelco has repeatedly admitted these sources have greatly
bitrotted, and are in dire need of resuscitation.

With regards, Arthur.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Nix for Hackage/Cabal

2007-07-06 Thread Arthur van Leeuwen


On 6-jul-2007, at 18:08, Duncan Coutts wrote:


On Fri, 2007-07-06 at 16:47 +0200, apfelmus wrote:

Hello,

   http://nix.cs.uu.nl/index.html

Nix is a purely functional package manager. This means that it  
treats
packages like values in purely functional programming languages  
such as
Haskell - they are built by functions that don't have side- 
effects, and

they never change after they have been built.

To me, it sounds like the ideal solution to package/make/build
management in general and Cabal/Hackage/Cabal-install in particular.
After all, compilation is just a _pure_ function

  compile :: Source - Dependencies - Object

So, the suggestion is to use Nix for Hackage/Cabal. This way, we get
package installation/deinstallation for free. I didn't look into  
it, but
it seems that the package description language can express most  
content
from .cabal files and I guess that it even eliminates the need for  
most

of Cabal's functionality like finding compilers and such.


I was under the impression that it didn't work on Windows. From  
another

quick look at the website, it looks like that's right. Does anybody
happen to know otherwise?


It does in fact work under Windows. However, it currently depends on
cygwin for most of its building infrastructure. This is not fundamental
to the system, fortunately. There is just too little manpower behind it
to lift it from its Linuxy start...

Oh, and Daan Leijen seems to have written something about the same
subject for some reason or another.

With regards, Arthur van Leeuwen. (Who has forwarded the initial mail
to Eelco Dolstra, designer of Nix, to see if he wants to chime in)

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] OK, so this VIM thing -- how do I make it actually work?

2007-06-08 Thread Arthur van Leeuwen


On 5-jun-2007, at 10:58, Michael T. Richter wrote:

I've given up on getting a decent text editor for editing Haskell  
(specifically literate Haskell -- plain Haskell works fine in  
GEDIT).  Instead I fire up VIM and get ... a total mess.  At first  
I think maybe I've screwed up a whole bunch of settings or  
something, so I nuke everything in my home directory that begins  
with .vim and then, for added measure, head over to /usr/share and  
nuke the entire ./vim directory tree.  I then reinstall vim (from  
the Ubuntu Edgy archives) to get a brand new set of config files  
unsullied by my hands.


I still get a dog's breakfast.

A screen shot of what I'm seeing with a representative example of  
a .lhs file to show what I mean can be found at http:// 
img357.imageshack.us/img357/5798/gvimexamplezv4.png.  (I've pared  
it down to the minimum I could find that shows the behaviour  
clearly.)  The problems I'm seeing are the ugly white-on-red for  
underlines, the lack of any kind of differentiation for keywords/ 
operators/etc. vs. identifiers (although some punctuation is  
recognized, specifically curly braces), comments not being noted,  
etc.  Basically it looks like the Haskell is simply not being  
recognized at all (and, if the @saBinds@ thing is what I think it  
is, it looks like some latex isn't being recognized fully either).


Can anybody vim-centric please take a look at this and give me a  
few educated guesses as to what is happening here?


Yes, I can. What you see happening is that the syntax highlighter  
doesn't get

completely switched from TeX mode to Haskell mode on the change marked
by \begin{code} (and back again on \end{code}). Therefore, lone  
underscores
(which are usually in error in TeX outside of mathematics) are marked  
as errors.
This should be fixed. I'll look into it. The reason I've never run  
into it is simple:

I tend not to use underscores in my Haskell code. :)

With regards, Arthur van Leeuwen.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Profiling, GUIs and libraries

2007-05-21 Thread Arthur van Leeuwen


On 20-mei-2007, at 17:39, Anthony Chaumas-Pellet wrote:


Hello,

I'm currently hacking away a wxhaskell program that uses up 100% CPU
even when it should be idle. So, rather than doing blind guesswork,
I've thought about using profiling to spot the zealous function. I do
not need a very accurate result, though.

ghc with -prof -auto(-all) produces the following error message,
however: Could not find module `Graphics.UI.WX': Perhaps you haven't
installed the profiling libraries for package wx-0.10.1? Use -v to see
a list of the files searched for.

So, I guess I need to rebuild wx with profiling, but I'm not sure how
to do that exactly; search engine and the Wiki did not turn up any
pointers, and there are no ready-made options to build wx with
profiling. It seems Cabal can build a library with profiling
automatically, but I don't think there exists a Cabalized version of
wx yet.

That, and I'm not sure if recompiling libraries to add profiling is a
great idea, as wx itself may depend on other external libraries. So,
is there a better way than profiling in my case, or am I missing
something obvious here?


You are not missing anything obvious. The process is in fact
somewhat tricky. What you have to do is the following:

- compile wxHaskell with profiling (by editing the makefiles to  
include the

-prof -auto-all argument to GHC)
- *install* the profiled wxHaskell
- manually move the profiled object libraries to ones including the _p
string before the .a, e.g. move
/usr/local/wxhaskell/lib/libwx.a to /usr/local/wxhaskell/lib/libwx_p.a
- manually move the profiled .hi files to .p_hi files, e.g. move
/usr/local/wxhaskell/lib/imports/Graphics/UI/WX.hi to
/usr/local/wxhaskell/lib/imports/Graphics/UI/WX.p_hi
- compile wxHaskell without profiling
- install the non-profiled wxHaskell
- enjoy the ability to use wxHaskell in both profiled and unprofiled
versions

Note: this assumes you are on a Unix-like system. I have no clue how
to do this on Windows, but I'm told it is similar.

Oh, and this is tested and works. The external libraries that wx relies
on are either truly external, as in called through the FFI, or GHC  
standard

libs that  normally already have a profiling version available.

With regards, Arthur van Leeuwen.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] global variables

2007-05-21 Thread Arthur van Leeuwen


On 21-mei-2007, at 9:31, Simon Peyton-Jones wrote:



| I see no need two answer this again I believe I have already made my
| views perfectly clear already and provided ample evidence to justify
| them. Surely I don't need to do it again?

Is there a Wiki page about this somewhere?  Often email gets into a  
loop because not everyone reads everything on Haskell Cafe.  
(There's just too much of it.)  When that happens, a good thing do  
to is to summarise the various positions on a Wiki page, so the  
debate can progress by refining text rather than by repeating it.   
There is the additional advantage that someone coming along later  
can still make sense of the debate.


As I am sure Adrian would tell you were he awake:

http://www.haskell.org/haskellwiki/Top_level_mutable_state

With regards, Arthur van Leeuwen

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Editor

2007-05-21 Thread Arthur van Leeuwen


On 21-mei-2007, at 13:56, Michael T. Richter wrote:


Hell, even comparing the out-of-the-box syntax highlighting support  
in Gedit vs. (G)Vim is instructive.  Code like  
makeRandomValueST :: StdGen - (MyType, StdGen) (which,  
incidentally, was far easier to copy from in Gedit than GVim to  
paste into this message) only differentiates :: and - from the  
text and delimiters in GVim while in Gedit (keeping in mind that  
Gedit isn't a very good editor!) differentiates those plus  
makeRandomValueST vs. StdGen and MyType.  And the parentheses.


This is an interesting take on things. What to highlight and why is
decidedly non-trivial. Personally, I strongly *dislike* highlighting
of user-defined identifiers. And honestly, in Haskell, most identifiers
are user-defined. Furthermore, the haskell vim highlighter actually
allows you to highlight delimiters, True and False, the names of a
number of types, and the names of debugging functions. It requires
settings to turn that on though, as the highlighter should be as  
minimally
visually intrusive in its default setting as possible. Or at least,  
that's what
I think, and I was the last person to get his grubby paws on vim's  
highlighter
for Haskell. It does highlight literate Haskell code quite nicely  
however,
both in bird track style and in TeX style. It does expect literate  
Haskell

to be in .lhs files though...

Note that it is somewhat tricky to distinguish between the occurences
of the a's before and after the semicolon in the following:
map :: ( a - b ) - [a] - [b]; map f (a:as) = f a : (map f as)

I'd like to see what GEdit does to that. :)

Doei, Arthur van Leeuwen.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: Why the Prelude must die

2007-03-27 Thread Arthur van Leeuwen


On 27-mrt-2007, at 20:17, Nicolas Frisby wrote:


Gut feeling: the quick'n dirty script case occurs far less than the
whole module case. Thus I think the benefit of automatically importing
the Prelude if the module declaration is omitted should not happen:
the Principle of Least Surprise out-weighs the small benefit to a rare
case.


In my experience quick'n'dirty scripts tend to end up as full-blown  
modules
later on in their life. This, to me, is a strong indication to make  
importing
the prelude explicit. Furthermore, the arguments against explicit  
importing

seem to be easier teaching and shorter code, as one needs much of the
Prelude almost everywhere. However, Java seems to offer a reasonable
datapoint in this argument: almost everything in the language needs
to be explicitly imported, but for java.lang. Ofcourse, java.lang is  
quite

annoyingly big... so a good example it is not.


Regarding type variable naming, a few of my more hardware minded
friends I've asked to try Haskell often tease me about the opaque type
variable names in the Prelude--it seems greater consideration of type
variable names in the Prelude might behoove new users.


Good point. It would also make the Prelude sources (and Haddock docs)
*much* easier to understand.

Doei, Arthur.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: Re[2]: [Haskell-cafe] What is the best way to understand large programs?

2007-01-31 Thread Arthur van Leeuwen


On 30-jan-2007, at 23:52, Bulat Ziganshin wrote:


Hello Neil,

Monday, January 29, 2007, 2:26:03 AM, you wrote:


Having a Hoogle database for a large
program is also handy for figuring out where things are and what they
do - especially when the program has introduced new custom data  
types.


vim+hasktags can just show definition of every identifier in separate
window. i'm not 100% sure but afair vim can also show all usages of
given identifier


Unfortunately the current incarnations of hasktags do not generate
tags files that vim likes much. Workarounds are to use ghci 6.6's :tags
command, or to sort the generated tags files afterwards. Another
gotcha: hasktags generates the files 'tags' and 'TAGS' by default. This
*will* break on case-insensitive file systems such as e.g. default  
installations

of HFS+ on Macs.

Doei, Arthur.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] mapTuple

2007-01-11 Thread Arthur van Leeuwen


On 11-jan-2007, at 16:30, Marco Túlio Gontijo e Silva wrote:


Em Qui, 2007-01-11 às 16:14 +0100, minh thu escreveu:

you might want invistigate heterogeneous lists : in your case, it's
heterogeneous typle.


But aren't tuples always heterogeneous?


Yes, and precisely therein lies the problem. There is no way
for the compiler to infer that in

tupleMap f (a, b) = (f a, f b)

the type of f should be polymorphic. If you want it to be,
explicitly require it to be so:

tupleMap :: (forall a b . a - b) - (b,c) - (d,e)
tupleMap f (a,b) = (f a, f b)

However, this will still not allow you to write

tupleMap show (string,3)

as you require f to be fully polymorphic, and not constrained by any
context.

With regards, Arthur.

--  

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: [Haskell] Haskell Weekly News: December 20, 2006

2006-12-20 Thread Arthur van Leeuwen


On 20-dec-2006, at 2:17, Donald Bruce Stewart wrote:

-- 
-

Haskell Weekly News
http://sequence.complete.org/hwn/20061220
Issue 54 - December 20, 2006
-- 
-


Announcements

   Haskell Vim plugin. Arthur van Leeuwen [15]announced a new [16]vim
   plugin for Haskell providing some preliminary folding support, easy
   insertion of type signatures into programs, and support for  
handling

   .hi files.

  15. http://article.gmane.org/gmane.comp.lang.haskell.cafe/17675
  16. http://www.cs.uu.nl/~arthurvl/haskell.vba



Read that as 'support for automatically ignoring .hi files' (which  
really
helps when editing large programs consisting of multiple files... it  
makes

tab Do The Right Thing).

Doei, Arthur.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Haskell ftplugin for vim

2006-12-18 Thread Arthur van Leeuwen

Hiya folks,

I got slightly annoyed at having to tab beyond .hi files when editing
haskell code with vim, so I decided to wrap some stuff together in a  
haskell
file type plugin. It has some preliminary (read: very stupid) folding  
support,
and allows you to call out to ghci easily to get type signatures  
included in

your text.

Get it at http://www.cs.uu.nl/~arthurvl/haskell.vba

Doei, Arthur.

--

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] How to use a wiki to annotate GHC Docs? was Re: [Haskell] Re: Making Haskell more open

2005-11-16 Thread Arthur van Leeuwen


On 16-nov-2005, at 13:14, Wolfgang Jeltsch wrote:


Am Mittwoch, 16. November 2005 12:33 schrieb Scott Weeks:

The public comment/wiki spam problem is easily solved.

Use JavaScript to generate a value and put it in a hidden form field.
Check for that value server side, if it's there then allow the post
otherwise disallow.

Most if not all bots don't have JavaScript engines.


But not all users use JavaScript.


A nicer solution might be to have the server generate a distorted image
of a key (as is done with user registration to combat automated user  
generation)
that should be typed in for an edit to be accepted (if you are not  
logged in).


Doei, Arthur.

  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Dread __DISCARD__

2005-09-19 Thread Arthur van Leeuwen


On 17-sep-2005, at 18:14, Wolfgang Thaller wrote:



I'm on Mac OS 10.4.2, using ghc 6.4 (from the haskell.org .dmg) and
gcc 4.0.0.  Other wxHaskell programs (the samples and my own
experiments) compile without tripping over this.




GHC 6.4 is incompatible with gcc 4.0.0 when -O or -via-C is used.
You can work around this problem by either not using -via-C and  
always adding -fasm *after* -O, or by setting your default compiler  
to gcc-3.3 using

sudo gcc_select 3.3
... but be aware that this also affects other C compilations;  
switch back using

sudo gcc_select 4.0



Ofcourse, you can also add -pgmc /usr/bin/gcc-3.3 to the ghc  
commandline for
you compilations. This does not affect other C compilations, and is  
easily added

to e.g. makefiles that use a GHCFLAGS variable...




The upcoming GHC 6.4.1 will of course fix this problem.



Good to hear that.

Doei, Arthur.

--
  /\/ |   [EMAIL PROTECTED]   | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody  
watching







PGP.sig
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] file line operation perhaps need loop

2005-07-20 Thread Arthur van Leeuwen
On Wed, Jul 20, 2005 at 02:27:36PM +0800, Sun Yi Ming wrote:
 Hello,
   I have two txt file,and i want to mix the two files line by line, e.g. 
  $ cat url1.txt
url1_1.line
url1_2.line
  $ cat url2.txt
url2_1.line
url2_2.line
 and i want this file as result:
  $ cat aha.txt
url1_1.line
url2_1.line
url1_2.line
url2_2.line
 
 i first write this snippet of code:
 ---
 import System.IO
 
 mix :: [a] - [a] - [a]
 mix [] ys = ys
 mix xs [] = xs
 mix (x:xs) (y:ys) = [x,y] ++ mix xs ys
 
 f1 = do contents1 - readFile url1.txt
 contents2 - readFile url2.txt
 let urls1 = lines contents1
 urls2 = lines contents2
 urls = mix urls1 urls2
 writeFile aha.txt (unlines urls)
 --
 this works fine, but i think if the two file are very big, and the 
 readFile will consume too many mem.

Ah, but this is exactly where lazyness wins bigtime: a smart implementation
of readFile will lazily read the actual file for as far as needed. Thus,
reading with readFile will not read the entire file into memory at once.
What will happen is that writeFile starts writing, and upon discovery of
needing the value of urls it will then start reading. Any value already
written in this case obviously turns into garbage and will be garbage
collected. I would be slightly surprised if this code uses more than
constant memory.

 so i need to read the file 
 line by line but stunned by the loop in IO Monad:
 ---
 main = do h1 - openFile url1.txt ReadMode
   h2 - openFile url2.txt ReadMode
   line1 - hGetLine h1
   line2 - hGetLine h2
   print $ line1 : line2 : [] -- i don't howto do
   hClose h1
   hClose h2
 --
 any ideas? thank you all.

Yes. You need to split the lines 

line1 - hGetLine h1
line2 - hGetLine h2
print $ line1 : line2: []

into a separate function that will then recurse over the file.

Doei, Arthur.

-- 
  /\/ |   [EMAIL PROTECTED]   | Work like you don't need the money
 /__\  /  | A friend is someone with whom | Love like you have never been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody watching
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Usage of | in classes

2005-06-07 Thread Arthur van Leeuwen
On Tue, Jun 07, 2005 at 03:54:06PM +0200, Frank-Andre Riess wrote:
 Hi,
 
 Gracjan's question led me to another question:
 
  class Monad m = Ref m r | m - r where
   newRef :: a - m (r a)
   readRef :: r a - m a
   writeRef :: r a - a - m ()
 
 What's the meaning of the bar and the function type in this declaration. I've 
 seen something like that before (with state monads, I think), but couldn't 
 find an explanation in the Haskell grammar (or anywhere else on haskell.org).

It is a functional dependency. That is, in this case, the choice of type r 
is uniquely determined by the choice for the type m. See also
http://haskell.org/hawiki/FunDeps and
http://www.haskell.org/ghc/docs/latest/html/users_guide/type-extensions.html#functional-dependencies

 Thanks in advance,

My pleasure.

Doei, Arthur.

-- 
  /\/ |   [EMAIL PROTECTED]   | Work like you don't need the money
 /__\  /  | A friend is someone with whom | Love like you have never been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody watching
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] module Crypt_Discordian - code critique requested

2005-02-22 Thread Arthur van Leeuwen
On Wed, Feb 23, 2005 at 12:27:19AM +, Terrence Brannon wrote:
 
 Hi, I am getting into Haskell so I decided to convert a Perl module of
 mine:
 
 http://cpan.uwinnipeg.ca/htdocs/Crypt-Discordian/Crypt/Discordian.html
 
 into Haskell. I was pleased at the cleanliness and conciseness of the
 Haskell code. However, I am sure that it can be improved on and am
 soliciting any feedback you may have about this module.
 
 Thanks,
 metaperl on #haskell
 
 module Crypt_Discordian 
 where
 
 import List
 
 vowel_list = aeiouAEIOU
 
 is_vowel c = c `elem` vowel_list
 
 move_vowels lis = move_vowels' lis [] []
 
 move_vowels' [] c v = v ++ c
 move_vowels' (x:xs) c v
 | is_vowel x  = move_vowels' xsc  (x:v)
 | otherwise   = move_vowels' xs (x:c)v
 
 remove_spaces str = filter (\x - x /= ' ') str
 
 encrypt str = List.sort $ move_vowels $ remove_spaces str

How about

 module CryptDiscordian
 where

 import List

 vowels = aeiouAEIOU
 isVowel = (flip elem) vowel_list

 moveVowels xs = filter (not . isSpace) $ 
 (filter (not . isVowel) xs ++ filter (is_vowel) xs)

 encryptDiscordian xs = map chr $ sort $ map (ord . toLower) $ 
 reverse $ moveVowels xs

[snip description of algorithm]

Obviously, if it is implemented differently it won't be the Discordian
encryption anymore, now will it? Note that my version is more conforming
than yours, as you don't convert to numbers and back...

Unfortunately, the algorithm doesn't state how to deal with capitalization,
so I chose to just map to lowercase...

Doei, Arthur.

-- 
  /\/ |   [EMAIL PROTECTED]   | Work like you don't need the money
 /__\  /  | A friend is someone with whom | Love like you have never been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody watching
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] module Crypt_Discordian - code critique requested

2005-02-22 Thread Arthur van Leeuwen
On Wed, Feb 23, 2005 at 08:46:23AM +0100, Arthur van Leeuwen wrote:
 On Wed, Feb 23, 2005 at 12:27:19AM +, Terrence Brannon wrote:

[snip, encryptia discordia]

 How about
 
  module CryptDiscordian
  where
 
  import List
 
  vowels = aeiouAEIOU
  isVowel = (flip elem) vowel_list
 
  moveVowels xs = filter (not . isSpace) $ 
  (filter (not . isVowel) xs ++ filter (is_vowel) xs)
 
  encryptDiscordian xs = map chr $ sort $ map (ord . toLower) $ 
  reverse $ moveVowels xs

Which won't work, as it lacks an import Char.

Doei, Arthur. (Still waking up, apparently)

-- 
  /\/ |   [EMAIL PROTECTED]   | Work like you don't need the money
 /__\  /  | A friend is someone with whom | Love like you have never been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody watching
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: library documentation

2005-01-27 Thread Arthur van Leeuwen
On Thu, Jan 27, 2005 at 12:41:27PM -, Simon Marlow wrote:
 On 27 January 2005 10:46, Peter Simons wrote:
 
  Isaac Jones writes:
  
http://www.haskell.org/hawiki/LibraryDocsNeedingHelp
  
  This is a great idea.

  I have been thinking  you know what would make
  contribution to the library efforts even simpler? If they
  were available in a Darcs repository.

  Saying darcs push after you've spontaneously added a
  three-line explanation into a standard library is a lot more
  attractive than cvs diff, cutting and pasting that diff
  into an editor, and e-mailing it to the -libraries list.
  (Who submits a diff for three lines of documentation?)

  One of the reasons why Darcs is great is that it makes
  submitting changes very simple for _everybody_.

 This would be great, but unfortunately the activation energy is quite
 high: we're already pretty committed to CVS, so we either move over to
 darcs wholesale, or we keep GHC in CVS and libraries in darcs.  Neither
 is particularly attractive right now - darcs isn't ready for projects
 the size of GHC (at least, last I looked), and having a split repository
 would be a nightmare.

However, having a darcs repository just for the docs would be better 
than having a wiki, right? That way you have a central repository
with documentation all ready to go in the format you'd need to enter
into CVS, and then once in a while, e.g. when a new GHC release is 
imminent, someone goes through the burden of going through all the
documentation submissions and incorporates those that are applicable
in the CVS tree...

The beauty of darcs, as I see it, is that a repository is basically 
a directory structure with some metadata inside it, and that 
directorystructure can just as easily *also* be under CVS...

Doei, Arthur.

-- 
  /\/ |   [EMAIL PROTECTED]   | Work like you don't need the money
 /__\  /  | A friend is someone with whom | Love like you have never been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody watching
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: Non-technical Haskell question

2004-12-09 Thread Arthur van Leeuwen
On Thu, Dec 09, 2004 at 02:34:09AM +0100, Sebastian Sylvan wrote:
 Anyway, I'm currently working on an article for a Swedish print
 magazine on Haskell (similar to the one linked above, but less
 argumentative) that's due out at the end of January 2005. Hopefully
 that will contribute to spark the interest of a few imperative
 programmers to try Haskell out.
 I think that's a pretty good way to go about it. If you calmly list
 the benifits of Haskell, with a few tutorial-ish examples, and get
 that published in a print magazine (which the mainstream programmers
 read) I think that could convince quite a few people to give it a try.

It does indeed help. The Dutch edition of c't published an article on Clean
in the march edition of 2003, which seems to have lead to some new influx
on the Clean mailinglists.

Doei, Arthur.

-- 
  /\/ |   [EMAIL PROTECTED]   | Work like you don't need the money
 /__\  /  | A friend is someone with whom | Love like you have never been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody watching
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ANNOUNCE: Haskell Communities Activities Report (6th ed., May 2004)

2004-05-25 Thread Arthur van Leeuwen
Just a bit more than half a year after the previous edition, I am 
pleased to announce on behalf of the many contributers that the

  Haskell Communities and Activities Report
  (6th edition, May 2004)

 http://www.haskell.org/communities/

is now available from the Haskell Communities home page in several
formats: PDF, for screenreading as well as printing, HTML, for those 
of you who prefer not to deal with plugins or external viewers, and 
PostScript, for those of you who have nice quick printers that do not 
grok PDF.

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. I 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 2004:
target deadline for contributions to the
 October 2004 edition of the HCA 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 October (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). Ofcourse, 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.

Enjoy, communicate, and program!

Arthur van Leeuwen

-- 
  /\/ |[EMAIL PROTECTED] | Work like you don't need the money
 /__\  /  | A friend is someone with whom | Love like you have never been hurt
/\/__ | you can dare to be yourself   | Dance like there's nobody watching
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] REMINDER - Contributions to HCA Report (May 2004 edition)

2004-05-03 Thread Arthur van Leeuwen
Dear Haskellers,

we would like to remind you of the opportunity to contribute to the 
May 2004 edition of the Haskell Communities  Activities Report. 
Why not take the few minutes necessary to type up a new or updated 
entry and send it in? We would love to see people write on the 
following subject(s): 

- The Haskell Mailing List
- The Haskell Cafe 
- The Haskell 98 reports
- Concurrent Haskell
- hierarchical libraries
- HaskellDB
- HXml
- QuickCheck
- Yale Haskell group 
- Parallel and Distributed Functional Languages Research 
  Group at Heriot-Watt University

Ofcourse, if you have done other interesting things with Haskell 
we would very much like to know about those as well!

If at all possible, could you please send in your contribution by 
friday *this* week, i.e. May 7th 2004? We will update the topics 
list on http://www.haskell.org/communities/topics.html with a nice 
tickmark as soon as we have received your contribution, to show that 
you too support the Haskell Communities and Activities Report!

Thanks,

Arthur (interim editor, May 2004 edition)

-- 
Haskell Communities and Activities Report (May 2004 edition)
All contributions are due in by the end of next week!
http://www.haskell.org/communities/
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Call for Contributions - HCA Report (May 2004 edition)

2004-04-14 Thread Arthur van Leeuwen
Dear Haskellers,

two changes of season and one of editor later, we strongly suspect
the Haskell community has also moved along admirably. Thus comes
the need to refresh our list of all things Haskell, and give *you*
the opportunity to tell all the world about your passion. 
We invite your contributions to the imminent sixth edition of the

  
  Haskell Communities  Activities Report  
http://www.haskell.org/communities/

Submission deadline: 7 May 2004

  (please send your contributions to [EMAIL PROTECTED], in plain 
   ASCII or LaTeX format)
  

The Haskell Communities  Activities Reports biannually report on
the state of Haskell over the last 6 months, and sometimes on plans 
for the next 6 months. If you have only recently joined the Haskell
world, browse the November 2003 edition -- you will find an overview
of what's going on as well as starting points and links that may
provide many answers.

We would much like you to send your contributions in by the first week
of May, and will then endeavor to publish the collective report roughly
a month before the start of summer. Note that this is a great opportunity
to gauge the state of your research, update your web pages, release new
versions, announce entirely new projects, summarize developments in
sub-communities for every Haskeller to see, etc. :)

The way we like to do things is have you update all existing summaries,
as the purpose of these reports is to show *recent/current* activities.
We will drop any topics that haven't had any activity since May 2003,
so if you haven't updated your topic since then, now is a good time!
Ofcourse, if you have new things to share, so much the better. We
would love to hear of it, and include it in the report. Please
keep your contributions short though, a couple hundred words maximum,
as we would like to keep the size of the report reasonable. It is
intended as an overview after all.

Looking forward to your contributions,

Arthur (interim editor, May 2004 edition)

--- topics

New suggestions for current hot topics, activities, projects, etc.
are welcome - especially with names and addresses of potential
contacts, but here is a non-exclusive list of likely topics
(see also http://www.haskell.org/communities/topics.html ):

General Haskell developments; Haskell implementations; Haskell  
  extensions; Standardization and documentation; Haskell tutorials,
  howtos and wikis; Organisation of Haskell tool and library
  development; Haskell-related projects and publications; new
  research, fancy tools, long-awaited libraries, cool applications;

Feedback from specialist mailing lists to the Haskell community
  as a whole; Haskell announcements;  all (recent) things Haskell

Announcements: if you've announced anything new on the Haskell
  list over the last six months, you'll want to make sure that is
  reflected in this edition!

Project pings: if you're maintaining a Haskell tool or library or 
  somesuch, you'll want to let everyone know that it is still alive 
  and actively maintained, even if there have been no new additions,
  but all the more if there have been new developments.

Tutorials: if you've fought with some previously undocumented 
  corner of Haskell, and have been kind enough to write down how you
  did manage to build that graphical user interface, or if you'
  ve written a tutorial about some useful programming techniques, 
  this is your opportunity to spread the word (short, topic-specific,  
  and hands-on tutorials that only show how to achieve a certain   
  practical task would do a lot to make things easier for new
  Haskellers - please write some!)

Applications: if you've been working quietly, using Haskell for  
  some interesting project or application (commercial or otherwise),
  you might want to let others know about what you're using Haskell
  for, and about your experiences using the existing tools and   
  libraries; are you using Haskell on your job?

  An interesting thread about using Haskell and more generally functional 
  programming for non-Haskell things seems to recur with reasonable
  frequency - why not write a sentence or two about your use of Haskell 
  for our report?

Feedback: if you're on one of the many specialist Haskell mailing
  lists, you'll want to report on whatever progress has been made 
  there (GUI API discussions, library organisation, etc.)


If you're unsure whether a contact for your area of work has come   
forward yet, have a look at the report's potential topics page, or 
get in touch with me.  I've contacted last time's contributors,  
hoping they will volunteer to provide updates of their reports, and
will update the contacts on the topics page fairly regularly.  But 
where you don't yet see contacts listed for your