
#9115: The kind of (=>) -------------------------------------+------------------------------------ Reporter: kosmikus | Owner: Type: feature request | Status: new Priority: low | Milestone: Component: Compiler | Version: 7.8.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: None/Unknown | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------ Comment (by goldfire): Here's a reason: normally, if we know `(a b c) ~ (d e f)`, it is reasonable to conclude `a ~ d`, `b ~ e` and `c ~ f`. But, what if `a` is really `(=>)`? Could `b` become `(Eq a, Eq [a])` and `e` become `Eq [a]`? Is it the case that `(Eq a, Eq [a]) ~ Eq [a]`? These are logically equivalent, but are they equal in the sense of `(~)`? I would hope not. Indeed, even asking whether `(a => b) ~ (c => d)` right now is forbidden. There may be a reasonable way forward here, but it's not abundantly obvious. If you want More Thought put into this, do you have a use case in mind? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9115#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler