names, modules, types

Marcin 'Qrczak' Kowalczyk
7 Feb 2001 18:05:43 GMT

Wed, 7 Feb 2001 10:08:14 +0100 (MET), Johannes Waldmann <> pisze:

> getLine:: IO String; getLine :: Handle -> IO String
> At each usage of getLine, the typechecker should follow both tracks, 
> and take the one that is type-correct.

There is exponential growth of possibilities in compound expressions.
And I'm afraid that ambiguities would happen in unexpected places and
it would not be easy to find where to add type signatures. Especially
as there is less explicit type information than in many other
statically typed languages.

> (*) there is a problem if you have a  class method  (like `map' in Functor)
> and a  function (like `map' for lists) of the same name,
> and an instance Functor [].

In this case map for lists is unnecessary: just use Functor's map.

So why is fmap separate now? Probably because having too much
overloading causes ambiguities.

 __("<  Marcin Kowalczyk *
  ^^                      SYGNATURA ZASTĘPCZA