Fri Apr 5 16:47:06 EDT 2019

State machine composition

This is the holy grail, really.  If one machine can reuse and restart
another, that is efficient use of resources.  This is pretty much what
a CPU + peripheral combo would do.

However, it does not make a lot of sense to build a machine and have
it sit idle for most of the time.

So one machine restarting another is a special case of a PRODUCT type.

One machine running after another is a SUM type.

Note that reuse in the case of a SUM type is only possible if the
different machine modes share some logic.

EDIT: What Axel said: the hardware is going to be there anyway, so why
not pipeline?