Revised the directory structure and centralized common commands under Makefile.
Introduced a basic b+tree which will support database indexing.
Added a struct-array to facilitate read/writes to the raw bytes contained by each btree-node.
Renamed btree to signal my intent: the module is an incomplete implementation of the BTree.
Extracted unit tests for StructArray into src/tests/.
Added a stress-test for StructArray and added a make command.
Rewrote btree4fun to support persisting to disk from the ground up.
Added btree.valid().  I learned early on from subtle bugs to always validate the btree even for the simplest of btrees.
Support tuples as keys and values.  An example use case is a database index based on two columns e.g. (employee.name, employee.age).
Split the unit tests to a proper _test.py.
The new test doesn't pass (requires node splitting logic) but I reached a good checkpoint: BTree.insert and .find are behaving like a proper BTree.
Implemented 'split leaf' in BTree.insert.  Added a new test case for 'split node' which fails intentionally.
Support 'split node' in BTree.insert.
Revised comments for module, btree4fun.