unseemly icon indicating copy to clipboard operation
unseemly copied to clipboard

Implement existential types

Open paulstansifer opened this issue 6 years ago • 1 comments

We already have universal types, adding existential types is probably pretty similar. I believe that something like traits should be macro-implementable with existential types (having some way to make types nominal would probably help shield users from seeing a type that looks like ∃T({add: [T T -> T], subtract: [T T -> T]}, T).

paulstansifer avatar Mar 13 '19 01:03 paulstansifer

Actually, according to TAPL, we can encode existential types as universal types. We might still want to have existential types (I think it's important that types "bottom out" to a readable form (though nominalization might be the better solution to that problem)), but we may be able to get traits without needing existentials.

paulstansifer avatar Apr 28 '19 02:04 paulstansifer