• simonpj's avatar
    [project @ 2005-02-25 13:06:31 by simonpj] · 8e67f550
    simonpj authored
    Type signatures are no longer instantiated with skolem constants
    	Merge to STABLE
      p :: a
      q :: b
      (p,q,r) = (r,r,p)
    Here, 'a' and 'b' end up being the same, because they are both bound
    to the type for 'r', which is just a meta type variable.  So 'a' and 'b'
    can't be skolems.
    Sigh.  This commit goes back to an earlier way of doing things, by
    arranging that type signatures get instantiated with *meta* type
    variables; then at the end we must check that they have not been
    unified with types, nor with each other.
    This is a real bore.  I had to do quite a bit of related fiddling around
    to make error messages come out right.  Improved one or two.
    Also a small unrelated fix to make
    	:i (:+)
    print with parens in ghci.  Sorry this got mixed up in the same commit.