Constrained Type Families?

Edward Kmett ekmett at gmail.com
Wed Mar 9 01:28:00 UTC 2016


An example would be something like:

class Foo (p :: k -> Type) where
  type Bar p :: k -> k
  type (k ~ Type) => Bar p = p

-Edward

On Tue, Mar 8, 2016 at 8:24 PM, Edward Kmett <ekmett at gmail.com> wrote:

> If and when that feature lands would it be possible to use it to bypass a
> current limitation in class associated types?
>
> Notably if a class associated type has a more general kind, we currently
> can't give a default definition for it that has a tighter kind.
>
> e.g. I have some classes which are technically polykinded but where 90% of
> the instances instantiate that kind as *. The status quo prevents me from
> putting in a type default that would only be valid when the kind argument
> is *.
>
> -Edward
>
> On Tue, Mar 8, 2016 at 8:21 PM, Richard Eisenberg <eir at cis.upenn.edu>
> wrote:
>
>>
>> On Mar 8, 2016, at 7:17 PM, Evan Austin <e.c.austin at gmail.com> wrote:
>>
>> The wiki page for Phase I of Dependent Haskell describes an approach to
>> constrained type families:
>>
>> https://ghc.haskell.org/trac/ghc/wiki/DependentHaskell/Phase1#Typefamilyequationscanbeconstrained
>>
>> Did that land in GHC 8.0 and, if so, is the updated syntax documented
>> somewhere?
>>
>>
>> No, it didn't make it. The motivating test case seemed contrived and so
>> we punted on this one.
>>
>> Do you have a use case that really needs this feature? That would help to
>> motivate it for 8.2 or beyond.
>>
>> Thanks!
>> Richard
>>
>>
>> _______________________________________________
>> ghc-devs mailing list
>> ghc-devs at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20160308/4319fa22/attachment.html>


More information about the ghc-devs mailing list