Think of the problem in terms of compression. You can compress via syntax or by semantics. In the first case you end up with gzip and an unreadable compact mess. In the second you end up with a better, more elegant program, expressed via core, largely orthogonal concepts. For some reason you seem to think that a good programmer works like gzip. That's simply wrong.