
#9223: Type equality makes type variable untouchable --------------------------------------------+------------------------------ Reporter: Feuerbach | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type checker) | Version: 7.8.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Test Case: | Difficulty: Unknown Blocking: | Blocked By: | Related Tickets: --------------------------------------------+------------------------------ Comment (by goldfire): I'm a little confused about what's going on about the core complaint, but, tangentially, it seems to me that calling `a` a "rigid type variable" is wrong here. Isn't `a` a metavariable, especially if it's untouchable? I should say that blindly following the rules from !OutsideIn about untouchable variables does lead me to a place of unifying `m a` with `m ()` where `a` is untouchable. But, something is still fishy about it that I can't quite pin down. In other cases, when something is untouchable, I can construct a way in which the type in question is not a principal type... and I can't quite do this here, hence my confusion. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9223#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler