Allows you to perform math on any kind of data structure that follows the Numeric behaviour
Any module that wants to be a Numeric type, and to be able to be called by the functions in Number, should make sure that this behaviour is followed
Raised when add/2, sub/2, mult/2 or div/2 is called with two different kinds of structs as arguments
Raised by coerce/2 when coercion is not possible
coerce/2