PR Cleanup

* Removed redundant lines: unnecessary return, extra init lines
* Added specific comments
* Updated `is_canonical` to check negative `Number` & `Rational`
* `log` now throws unimplemented for negative Numbers.