implements unique algorithm

I feel your pain. That's the point @pfultz2 was making below with his `is_lightweight_range` trait. I feel making this safe is more important than making it convenient. If this interface becomes standard, think of all the n00b programmers who will be using it. I don't want to be the one to introduce a whole new category of security bugs. We have a big responsibility here.