Deriving, exports and fromIntegral

* Restrict fromIntegral to the only interesting case
* Add Rational type
* Add some derivings
* Re-export Monad