Liskov Substitution Principle (LSP):
- Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T.
My Bogus was an attempt to abstract a method by which I could get access to a variable using a syntatic-sugar idiom. The abstraction leaks. Here is how it leaks:
(should-maintain-scope-of-inner-property (with-property (value 24) (value :is (incf (value)))) (assert-equal 25 (value)))
‘incf’ is a destructive operation.
Posted by gutzofter