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

Reply via email to