Too Long; Didn't Read
David Parnas' 1972 paper defined a novel and foundational concept for modern software engineering: Information Hiding. The rule is straightforward: If we hide our implementation we can change it as many times as necessary. We are no longer talking about encapsulating within a module but within the same object. A good design is one in which objects are coupled to responsibilities (interfaces) and not representations. This article assumes that declarative models in where implementation behind the objects are the same on the bijection between these models and real world.