So let's think about this. In Haskell, ML, and BitC a type definition introduce a whole bunch of things:
1. A type constructor 2. A value constructor 3. A "shape" for values 4. Deconstruction pattern matching rules [sort of] Which of these should be distinguished? Is it useful to be able to "publish" a type without publishing the ability to allocate that type? It seems to me this is mostly interesting for boxed types, because you have to be able to construct an unboxed types in order to make a temporary. Opaque types give us a type constructor and (for unboxed types) a shape, but not the others. My personal inclination is that we shouldn't distinguish construction, because I haven't seen a real use case where opacity can usefully be partial. Opinions? shap
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
