Dear Sir,

playing with Hugs I have found a strange behavior that could be the
symptom of a bug. Please note that I am using the last version of Hugs
(February 2000) with the type checker fix suggested in the bug page.

If I define the function

f x = x + x

and then ask Hugs to report the type, I get a very reasonable answer:

f :: Num a => a -> a

The same happens if I directly ask the type of the lambda abstraction 
\x -> x + x. In other words, the command

> :type \x -> x + x

gives the answer

\x -> x + x :: Num a => a -> a

If now I define

g = \x -> x + x

I get the surprising type

g :: Integer -> Integer

Analogously, using "g 2.5" produces the error 

*** Expression : g 2.5
*** Type       : Fractional Integer => Integer

Is this normal or is really a bug? Please note that the Glasgow
Haskell Compiler seems to identify the correct type for both f and g.

Best regards,

                                                Marco Lombardi

_____________________________________________________________________

                         Marco Lombardi

Scuola Normale Superiore                European Southern Observatory
P.zza dei Cavalieri 7                   Karl-Schwarzschild-Str. 2
I-56100, Pisa, Italy                    D-85748, Garching, Germany
tel.: +39-050-509111                    tel.: +49-(0)89-32006362
fax:  +39-050-563513                    fax:  +49-(0)89-3202362
e-mail: [EMAIL PROTECTED]                 e-mail: [EMAIL PROTECTED]
_____________________________________________________________________

Reply via email to