#5022: Core Lint error from polymorphic definitions inside arrow rec
-------------------------------+--------------------------------------------
    Reporter:  serpentologist  |       Owner:  ross        
        Type:  bug             |      Status:  merge       
    Priority:  high            |   Milestone:  7.4.1       
   Component:  Compiler        |     Version:  7.0.2       
    Keywords:  infinite loop   |          Os:  Linux       
Architecture:  x86_64 (amd64)  |     Failure:  None/Unknown
  Difficulty:                  |    Testcase:              
   Blockedby:                  |    Blocking:              
     Related:                  |  
-------------------------------+--------------------------------------------
Changes (by ross):

  * status:  new => merge


Comment:

 Polymorphic variables inside arrow rec were mishandled in both the
 typechecker and the desugarer.  This test covers the several issues here
 (it should compile):
 {{{
 import Control.Arrow

 pRepeat :: a -> [a]
 pRepeat =
     proc x -> do
       rec
         s <- returnA -< f_rec x:s       -- f_rec is monomorphic here
         let f_later y = y               -- f_later is polymorphic here
         _ <- returnA -< (f_later True, f_later 'a')
         let f_rec y = y                 -- f_rec is polymorphic here
       returnA -< f_later s
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5022#comment:18>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to