semantic versioning parser, comparer, etc. an experiment with some clojure features, literate programming, and such