Skip to content
  • Ross Paterson's avatar
    [project @ 2005-05-04 10:28:07 by ross] · 00007e64
    Ross Paterson authored
    Another go at the handling of -< in arrow notation, continuing and
    fixing the changes in
    
    	http://www.haskell.org/pipermail/cvs-all/2005-April/040391.html
    
    Now do the same thing in the renamer as we do in the type checker,
    i.e. return to the environment of the proc when considering the left
    argument of -<.
    
    This is much simpler than the old proc_level stuff, and matches the
    type rules more clearly.  But there is a change in error messages.
    For the input
    
    	f :: Int -> Int
    	f = proc x -> (+x) -< 1
    
    GHC 6.4 says
    
    	test.hs:6:
    	    Command-bound variable `x' is not in scope here
    		Reason: it is used in the left argument of (-<)
    	    In the second argument of `(+)', namely `x'
    	    In the command: (+ x) -< 1
    	    In the definition of `f': f = proc x -> (+ x) -< 1
    
    but now we just get the blunt
    
    	test.hs:6:16: Not in scope: `x'
    
    The beauty is all on the inside.
    
    Similarly leakage of existential type variables (arrow1) is detected,
    but the error message isn't very helpful.
    00007e64