Steelman their example. Given that they named the member "MaybeHasCat", it's pretty clearly meant to analogue an Option<Cat>; if you correct the small typo then (make the type of "MaybeHasCat" a pointer, so that it can store nil for the other half of the Maybe), the example behaves exactly as they describe.
Wtf? what are you doing? Did the point fly over your head, are you being malicious by removing the star, or?
They added the star as an edit because of my playground link. So, neither