Much of the current code assumes lower bounds of zero. This is more of an API issue, the algorithms all generalize easily.