proc gcd(a, b: IntObject): IntObject {....raises: [ValueError], tags: [], forbids: [].}
proc lcm(a, b: IntObject): IntObject {....raises: [ValueError], tags: [RootEffect], forbids: [].}