Skip to content
  • Simon Peyton Jones's avatar
    [project @ 2001-05-21 09:19:14 by simonpj] · c7e7bc25
    Simon Peyton Jones authored
    -------------------------------
    	Improve pattern type-signatures
    	-------------------------------
    
    The main effect of this commit is to implement the idea (originally
    Marcin's suggestion) that type variables in pattern type signatures
    are simply names for types; they don't have to name a type that is
    itself a type variable.
    
    For example
    
    	f :: Int -> Int
    	f (x::a) = let  y::a
    			y = x
    		   in x+y
    
    is fine.  Here 'a' is a name for the type 'Int', and does not have
    to be universally quantified.
    
    
    I also took the opportunity to modularise the implementation of
    pattern type-checking, mainly in TcMatches.  As a result pattern type
    signatures should work in do-notation (which they didn't before).
    
    ToDo: update documentation
    c7e7bc25