#344: arrow notation: incorrect scope of existential dictionaries
--------------------------------------+-------------------------------------
  Reporter:  nobody                   |          Owner:  ross            
      Type:  bug                      |         Status:  new             
  Priority:  lowest                   |      Milestone:  7.6.1           
 Component:  Compiler (Type checker)  |        Version:  6.4             
Resolution:  None                     |       Keywords:                  
        Os:  Unknown/Multiple         |   Architecture:  Unknown/Multiple
   Failure:  Compile-time crash       |     Difficulty:  Unknown         
  Testcase:                           |      Blockedby:                  
  Blocking:                           |        Related:                  
--------------------------------------+-------------------------------------

Comment(by ross):

 1) It would need to be desugared to something that passed the Foo
 dictionary explicitly, approximately:
 {{{
 get = arr (\x -> case x of Bar d a -> (d,a)) >>> arr (\(d,a) -> foo d a)
 >>> id
 }}}
 2) core-lint failures are usually either bugs in the desugarer or failure
 of the typechecker to reject something that should be rejected.  The
 original report was a typechecker bug (now fixed); this one is a desugarer
 bug.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/344#comment:23>
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