AM: rm trailing whitespace
AM: comments, docstring, whitespace
AM: NumDiff(f) for f() that returns nested lists
AM: ./io has been renamed to ./ui