Sun Aug 5 11:18:04 EDT 2018

Hardware is annoyingly pure

You can't just "assign" things!
Everything needs to be bound just once.

Approach digital design as gradually "closing" local feedback.

Note that this imposes arbitrary hierachy.  Can that be avoided?
Maybe it is even a good thing.

EDIT: I think there is something to learn here about the way these
compositions "commute".  One key element seems to be to keep the
input/output relation abstract.

A "close" operation takes some state context and burries it, leaving
(i -> m o).

EDIT: Abstracted closeIMem with some data types in the interface.
It's all quite straightforward, but testing this will require some

- make it possible to initialize memories
- have the test transfer data into the memory

The latter seems most useful, but I think the former is easier to do.

EDIT: I have a CPU with a jump instruction