added rational operator impls (not used)
added new type Rational
refactoring (is_procedure() is moved to decl.cc)