Tue, 29 Feb 2000 13:26:00 +0300 (MSK), S.D.Mechveliani <[EMAIL PROTECTED]> pisze:

> I propose for the user to remain with `Eq a =>'.
> Let the compiler itself deduce and add the needed context.

No, no, no.

Would the function really have the type that is specified, or the
one with extended context?

If the former, I previously argued that maintaining static information
about functions that is not expressed in types is hard. If such
information would be required (as opposed to "useful for optimization",
like strictness), everything breaks, local universal and existential
quantification is impossible.

If the latter, it is confusing. You say that a function having an
explicit type signature will have a different type? So what is
the reason of writing type signatures if they are false? Again,
it's obvious that it breaks local quantifiers (I pass a function of
exactly the needed type and the compiler complains that it is wrong).

The type describes how a function can be used. If I know the type, I
know which parameters it will (statically) accept and what information
it needs. This is a purpose of types and should not be broken.

> Way out:  provide the compilation key  -deduceContext.

The less compile switches that change the type system, the better.
The language should be simple, clean and compatible with itself.
Don't say that each module of the program has to be compiled with
the same switches!

> This key is for a programmer that uses the overlapping instances
> and does not aim the program to link to libraries provided without
> sources.

Arrgh...

-- 
 __("<    Marcin Kowalczyk * [EMAIL PROTECTED] http://qrczak.ids.net.pl/
 \__/              GCS/M d- s+:-- a22 C+++$ UL++>++++$ P+++ L++>++++$ E-
  ^^                  W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP+ t
QRCZAK                  5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-

Reply via email to