Most of the models that we use everyday are &quot;leaky abstractions&quot;. They are useful in most contexts, but they get fuzzy at their boundaries.<p>My favourite example is the &quot;chicken and egg&quot; problem. The difficulty of it is to define what a chicken is, everything is trivial afterwards. The answer, IMHO, is that &quot;a chicken&quot; was born from an egg put by a &quot;non-chicken&quot;.