Tags and keywords
We need some way to represent dialing of the numbers on the telephone. For each number 0 to 9 a Signal is created with a corresponding attribute n : int
(One could use the fancy Cameo facility for creating user interface buttons, but using Signals with default values is completely adequate for our purposes here.)
Now good OO suggests we should inherit n : int
from an abstract base Signal, then redefine it with a default in each concrete Signal, but it turns out that causes no end of very tricky side-effects because of a bug:
This per-digit Signal approach is a bit brute force, but it works fine. Let's dive in an see how they are leveraged in the entire strategy