
#9123: Need for higher kinded roles -------------------------------------+------------------------------------ Reporter: simonpj | Owner: Type: bug | Status: new Priority: normal | 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 ekmett): Good trick w/ transitivity! You've won me over on the simpler rule. =) That leaves these: {{{ instance Representational f => Representational (Compose f) instance Representational p => Representational (WrappedArrow p) instance Representational (p a) => Representational (WrappedArrow p a) }}} ...and if I understand correctly, the form we're talking about also gets stuck whenever an earlier argument occurs 'under' a later argument, e.g. the `s` when we try to define `instance Representational StateT` occurs under the `m` but everything else should work. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9123#comment:20 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler