
#10585: Implement proper bidirectional type inference -------------------------------------+------------------------------------- Reporter: goldfire | Owner: goldfire Type: bug | Status: closed Priority: normal | Milestone: Component: Compiler (Type | Version: 7.10.1 checker) | Keywords: Resolution: wontfix | Architecture: Operating System: Unknown/Multiple | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Changes (by goldfire): * status: new => closed * resolution: => wontfix Comment: Bah. Well, I tried doing this, and it just made everything worse. The problem is that, in the nice simple systems in published papers, there are only a few forms that can make good use of an expected type (abstractions being the poster child here). However, in GHC, it's just much, much more complicated, where the vast majority of expression forms can make good use of an expected return type. So the structural changes I was hoping would reduce the possibility of errors only improve a few cases, while making the whole structure more intricate. Not worth it. I will add a Note though explaining why there aren't two typechecker functions, though. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10585#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler