Parsing version numbers
Convert a version string to an internal representation. The parsed format can be compared using the regular comparison operators.
Safe_exceptionif the string isn't a valid version
make_range_restriction x y returns a test for versions where
x <= version < y.
parse_expr expr is a test for versions that match
parse_expr "2.2..!3 | 3.3.." matches
3.3.2 but not
Try to turn a distribution version string into a 0install one. We do this by ignoring anything we can't parse, with some additional heuristics.