// is independent of the definition of the type. `self` is like `this` in other
// languages, and its type is always implicit. So `print` is now a method that
// takes as first argument a `NumberOrNothing`, just like `print_number_or_nothing`.
// is independent of the definition of the type. `self` is like `this` in other
// languages, and its type is always implicit. So `print` is now a method that
// takes as first argument a `NumberOrNothing`, just like `print_number_or_nothing`.