Well, there's a fundamental reason it wont work for Haskell: we dont actually define the names of the parameters to the function!

Have a look at the function above, the function is defined as:

testunique' :: Eq a => [a] -> [a] -> [a]
testunique' [] elementssofar = []
testunique' (x:xs) elementssofar

There's an agreement here that the second parameter is called "elementssofar"... but only because I was consistent in my naming in this example.  What if we had multiple constructors for a particular type?

The first argument has no obvious naming at all.

We could do things like write it in comments:

testunique' :: Eq a => [a] -> [a] -> [a]
-- testunique' :: remainingelements -> elementssofar -> uniqueelements
testunique' [] elementssofar = []
testunique' (x:xs) elementssofar

... but we all know that no-one bothers writing comments, and certainly never maintaining them, and in any case this is becoming insanely difficult to read.

I dont have a solution, apart from using C# for production programming ;-) , but things like this are really important to solve in any "mainstream" version of Haskell.

On 7/11/07, Steve Schafer <steve@fenestra.com> wrote:
On Wed, 11 Jul 2007 22:39:27 +0200, you wrote:

>In C#, when you call a function you type "(" and instantly you get a popup
>box telling you what the name of the first argument is, then when you've
>written the first argument and hit "," you get the name (and type) of the
>second argument.

That's not a feature of C# itself, but rather a feature of the
development environment you're using. You can write C# code in NotePad,
and I will guarantee you that you won't see any such popups. ;)

There do exist various development environments for Haskell, but I don't
think any of them are particularly popular.

Steve Schafer
Fenestra Technologies Corp.
http://www.fenestra.com/
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe