
#9223: Type equality makes type variable untouchable -------------------------------------+------------------------------------- Reporter: Feuerbach | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.2 (Type checker) | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: | Related Tickets: None/Unknown | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by porges): I ran into something similar to this with a type like: forall t. (forall m. (C m, m ~ t) => m) -> t The solution was to write instead: forall t. ((C t) => t) -> t Are there any cases in which these aren't equivalent? If not, why is GHC not able to reduce the first to the second? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9223#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler