On Fri, Sep 23, 2016 at 3:00 PM, Simon Peyton Jones <simonpj@microsoft.com> wrote:

Interesting. Is this case also an example, or is it a non-feature?

 

class C t where

    type K t :: Type

    type T t :: K t -> Type

 

    m :: t -> T t a

 

 

Ah, that’s quite different!  We should do strongly-connected-component analysis of the associated-type declarations within a single class declaration…. but we don’t currently do that.   No difficulty in principle, I think.

 

You could open a ticket.   (Do include a link to this email thread and to #12088)


I’ve opened ticket #12612 <https://ghc.haskell.org/trac/ghc/ticket/12612>.

Assuming GHC accepted this definition, would the Template Haskell trick (or whatever replaces it) allow defining instances of C?

--
Dave Menendez <dave@zednenem.com>
<http://www.eyrie.org/~zednenem/>