
Second, for the program in comment:5, as josef points out in comment:11,
#11982: Typechecking fails for parallel monad comprehensions with polymorphic let (GHC 7.10.3 through 8.6.3) -------------------------------------+------------------------------------- Reporter: simonpj | Owner: josefs Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Resolution: | Keywords: ApplicativeDo Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by josef): simonpj, I don't agree with how you characterized my comments. You wrote: the renamer rewrites the program to a form that really would > require full-on impredicative polymorphism to propagate f's polymorphism. I must have explained myself very poorly. The point I was trying to get across is that we **don't** need full-on impredicative polymorphism. Instead, I believe we can solve the problem for ApplicativeDo by simply changing the algorithm that ApplicativeDo uses to handle `let` statements, just as simonmar suggested. In fact, I think that this ticket should be split up so that we have a separate ticket for ApplicativeDo. The remedies for parallell monad comprehension and ApplicativeDo seem very different. I'll create a new ticket for ApplicativeDo unless someone yells. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11982#comment:16 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler