On Sat, May 30, 2015 at 12:40 PM, Jonathan S. Shapiro <s...@eros-os.org> wrote: > Aside: > > If we decide that something like union subtypes are useful, it's worth > noting that they seem to straddle the boundary between constraints and > [overlapping] subtypes. I suspect that we really don't want to treat > non-overlapping subtypes as subtypes in the inference engine (but I may be > wrong). What I'm wondering is this: > > Given a declared single-variable type class "tc 'a", should we permit "tc" > to appear (syntactically) as a type name, where we understand > > x : tc > > to mean > > x : (forall tc 'a => 'a) > > Note: the intent of this is that 'a is a fresh type variable and the forall > is understood to reside in the appropriate quantification scope in spite of > appearing lexically in this position.
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. _______________________________________________ bitc-dev mailing list bitc-dev@coyotos.org http://www.coyotos.org/mailman/listinfo/bitc-dev