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