Previously, we talked about potential issues switch-case can cause, and what
to do when the type affects only data, or behavior, too.
Now that we are switch-case ninjas, we can go even further and see how to
tackle when the type code and the behavior change dynamically at runtime.