Hey, 

While trying to wrap my head around how type inference works in haskell
I stumbled across the following inconsistency:

If I type 
               :t (*)

in ghci, I obtain 
              
                (*) :: Num a => a -> a -> a

But if I write 

               let mul = (*) 
               :t mul 

I get the less generic type signature

               mul :: Integer -> Integer -> Integer

How is this inconsistency explained? After all, I would expect the haskell compiler to deduce the most generic type possible. 

Thanks in advance, 
Stefan.