On Tue, Jul 22, 2014 at 8:15 AM, Jonathan S. Shapiro <[email protected]> wrote:
> > The interesting part about type state was the fact that it tied type with a > (value, sequence point) pair. If I may continue on in this regard, the interesting part of the (value, sequence point) pair is the notion that it can only be constructed in a specific fashion, the pair has synergy.. http://cap-lore.com/CapTheory/Synergy/ neither value or sequence point alone/destructured can convey the fact that this value and this sequence point are conjoined if you can take two (value, sequence point) pairs and scramble them, you lose the synergy whether you do actually scramble them or not. the ability to hide the constructor allows one to create a ValueConstraintPair(value:'a, constraint:'b) to then introduce 'constraint on a specific value', the ability to hide the 'b constructor allows you keep people from then creating a ValueConstraintPair caller which avoids the constraint, then link time type validation keeps libfoo's 'b separate from libbar's 'b in the first case i gave of right triangle it's the synergy between the value and it's type, through a ValueConstraintPair it can be between a value and some other type, with typestate the property is hidden somewhere intrinsic to the compiler while the original example brought upon this discussion of constraints, it's this notion of synergy that i'm probably after. _______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
