A CPAN::Meta::Requirements object models a set of version constraints
like those specified in the META.yml or META.json files in CPAN
distributions, and as defined by CPAN::Meta::Spec; It can be built up by
adding more and more constraints, and it will reduce them to the
simplest representation.
Logically impossible constraints will be identified immediately by
thrown exceptions.