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] :
:----------------------------------------------------------------: