
#9725: Constraint deduction failure -------------------------------------+------------------------------------- Reporter: heisenbug | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.3 (Type checker) | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: GHC | Related Tickets: rejects valid program | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by heisenbug): Replying to [comment:1 rwbarton]:
...
Maybe adding kind annotations for some of the type variables involved would help?
I tried that. These are the most generic kinds: {{{ ent :: Entity -> k -> Entity Monitor :: Entity -> Bool -> Entity par :: Entity mp :: Bool }}} It looks like the equation `(*)` does not seem to establish the kind-level equality `Entity -> k -> Entity === Entity -> Bool -> Entity` and thus `k === Bool`. So yes, your analysis is correct, that kind variables mess up the decomposition. When changing `ent` to `Monitor`, everything works, probably because the kind variable `k` is eliminated. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9725#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler