Implement restrictions and reverse ranges
Calculate reversed state lazily

Don't call compare untill we have to.
Release 1.0.0