Answer to Seungmin's last question: You have to raise exception `Invalid_argument` when operations are ill-typed, such as `1 + True`.