
#10300: GHC rejects typeclass with associated type -------------------------------------+------------------------------------- Reporter: mhwombat | Owner: Type: bug | Status: closed Priority: normal | Milestone: Component: Compiler | Version: 7.10.1 Resolution: invalid | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: 10020 | Differential Revisions: -------------------------------------+------------------------------------- Changes (by simonpj): * status: new => closed * resolution: => invalid Comment: There's nothing to connect `Size` with `FiniteGrid`; it's not an ''associated'' type at all. You can just define it separately: {{{ type family Size s class FiniteGrid g where size :: g -> Size g maxPossibleDistance :: g -> Int }}} Or, if you want to guarantee you always have an instance of `Size g` whenever you have an instance of `FiniteGrid g`, then use `g` in `Size`'s definition: {{{ class FiniteGrid g where type Size g size :: g -> Size g maxPossibleDistance :: g -> Int }}} This isn't a bug in 7.10; rather it was a bug in 7.8. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10300#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler