So I've now read the "Objects to Unify Type Classes and GADT" paper twice,
and gone back to review several earlier GADT papers as well.

Most of what is here appears to be expressable in BitC already. We have a
notion of a sealed type class, for example. We don't currently handle GADTs,
but that's a straightforward extension that clearly needs to be done
eventually.

I think what I am struggling with is the implicit vs. explicit object
notion. So far as I can tell, the difference is that explicit objects
instantiate their class's type variables, and in doing so, form a
representation. Implicit objects instantiate *none* of their class's type
variables, and thereby serve as constraints only, wherein the ability to
instantiate an object of the appropriate class type (which is stateless and
therefore costs nothing to instantiate) serves as witness of membership in
the class relation.

Is there something here that is more complicated that this? If not, why
isn't this just syntactic sugar for things we already have? Not bad
syntactic sugar, and worth considering from that perspective, but is there
something new here?

I feel like I'm missing something important.


shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to