
#9123: Need for higher kinded roles -------------------------------------+------------------------------------- Reporter: simonpj | Owner: goldfire Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 7.8.2 checker) | Keywords: Roles, Resolution: | QuantifiedConstraints Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by goldfire): I don't see any madness in this direction, given that instance lookup fails eagerly if there is ambiguity. For example: {{{#!hs class Eq a => Wurble a class D a class E a f :: ((forall a. D a => Ord a), (forall a. E a => Wurble a)) => a -> Bool f x = x == x }}} Under the ambiguity rule above, this would fail. Really, it's the same problem we have with {{{#!hs g :: ((forall a. D a => Eq a), (forall a. E a => Eq a)) => a -> Bool g x = x == x }}} Both examples should have the same behavior (failing). This second one feels easier because it looks abjectly sillier, but it's not unreasonable to imagine a user writing something like that, hoping that GHC will non- deterministically pick the right thing to do. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9123#comment:45 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler