function
/usr/local/lib/janet/spork/misc.janet on line 164, column 1
(dfs data visit-leaf &opt node-before node-after get-children seen)
Do a depth first, pre-order traversal over a data structure. Also
allow for callbacks before and after visiting the children of a
node. Also allow for a custom `get-children` function to change
traversal as needed. Will detect cycles if an empty table is passed
as the `seen` parameter, which is used to cache values that have
been visited.