#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