[racket-dev] "Disjoint" unions (from PR 13131)
On Sep 22, 2012, at 10:52 AM, Eli Barzilay wrote:
> A few minutes ago, Matthias Felleisen wrote:
>>
>> I consider this problem distinct from Vincent's.
>
> Yes, the problem is separate (hence moving the discussion) -- it's the
> feature that he mentioned (being able to hide types) that I was
> referring to.
>
>
>> I'd argue that the separate this/that constructors exist in your
>> mind only.
>
> I'm not following that... If you're saying that the two constructors
> are not separate, then I'm more than agreeing -- I'm saying that this
> is the main feature of the whole thing: the fact that you cannot treat
> them as separate constructors as far as the type system goes.
Correct. In ML/standard type terminology, This and That types (I meant types) are VARIANTS not types. It is only in TR's set-oriented type system, that they can play the role of types too.
If you wanted to use define-type in plain TR programs (not '311'), you'd want to expose THIS and THAT.