Extract library definitions (no executing code touched)
Get tests to work
Use modern typescript to improve code with human-readable type annotations
-- class syntax instead of function-constructor
-- generic argument ValueType types the whole tree (nodes, iterators, stacks)
ValueType
types the whole tree (nodes, iterators, stacks)