//@ methods on an `enum` (and also on `struct`, which we will learn about later)
//@ 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
//@ methods on an `enum` (and also on `struct`, which we will learn about later)
//@ 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