The law is very much like a programming language in that it is attempting to abstract a concept from practice, so that it is useful in many applications instead of just one. In both cases these abstractions are always flawed. In the law's case, that's why we have judges.