On Sat, May 30, 2015 at 4:49 PM, Jonathan S. Shapiro <s...@eros-os.org> wrote:
> On Sat, May 30, 2015 at 1:42 PM, Matt Oliveri <atma...@gmail.com> wrote:
>>
>>
>> So, in other words, saying "tc" used as a type means "forall tc 'a =>
>> 'a" was a complete lie, and you're just trying to confuse me. :)
>>
>> So, for example, "tc->tc" translates to "forall (tc 'a) (tc 'b) => 'a ->
>> 'b"?
>> That doesn't sound like very useful sugar.
>
> You're right. Sorry. The potentially useful sugar would be to allow (tc 'a)
> as a type. It doesn't work nicely for multi-variable relations, but it works
> fine for single variable relations.

So (tc 'a) would just mean 'a, which we're saying we want a tc instance for.

That makes sense, but I don't love it. It looks like tc is a type
family then. (Well maybe not in your syntax, it wouldn't.) Also, it
can look asymmetric, when the situation actually isn't:
(tc 'a -> 'a) and ('a -> tc 'a) both mean (tc 'a => 'a -> 'a), I gather.
_______________________________________________
bitc-dev mailing list
bitc-dev@coyotos.org
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to