Type inference for Haskell (as described in Mark Jones' paper _Typing 
Haskell In Haskell_ and as performed by GHC) requires first splitting 
groups of let bindings into strongly-connected components.  It then 
assumes that all binders in such a component will be generalised over 
the same vector of type variables.

What is the justification for this assumption?  Is it always the case 
that in a strongly-connected component

let x1 = e1
    x2 = e2
    ...
    xn = en
in
    e

if xi has the type forall a b c . ti for some monotype ti then xj must 
have type forall a b c . tj for some monotype tj?  (modulo 
permutations, of course)

References to published discussions of this would be useful, too, 
although I suspect this is an area where folklore rules...

Thanks.

--KW 8-)


-- 
: Keith Wansbrough, MSc, BSc(Hons) (Auckland) -------------------:
: PhD Student, Computer Laboratory, University of Cambridge, UK. :
: Native of Antipodean Auckland, New Zealand: 174d47'E, 36d55'S. :
: http://www.cl.cam.ac.uk/users/kw217/ mailto:[EMAIL PROTECTED] :
:----------------------------------------------------------------:


Reply via email to