Re: [GHC] #7220: Confusing error message in type checking related to type family, fundep, and higher-rank type

#7220: Confusing error message in type checking related to type family, fundep, and higher-rank type -------------------------------------+------------------------------------- Reporter: tsuyoshi | Owner: simonpj Type: bug | Status: closed Priority: normal | Milestone: 7.8.1 Component: Compiler | Version: 7.6.1-rc1 (Type checker) | Keywords: Resolution: fixed | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: | Related Tickets: None/Unknown | Test Case: | typecheck/should_fail/T7220 | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by simonpj): Richard's fix for #9404 makes this compile. He says: The reason this went wrong before is that the old method of inferring a type would get caught when unifying a `TauTv` (the metavariable given as the guess for `f`'s type) with a polytype, deferring to the solver. If we defer, then we don't have enough information to type-check `u` successfully, and we fail. With the new inferring types with `PolyTv`, no deferring happens, and `u` type-checks fine. But with the #9404 fix, `f` is inferred to have the type as given. Then, `u` is checked (by `tcPolyExprNC`) to have the argument type of `f`, which it does. No problems. I actually think that success is the right behavior here, so I chalk this up to a success of this patch. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/7220#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC