Starts a search from a given root node. This method is a generator, so it is usually implemented like:
export default class MySearch implements Node.Search {
    *search(root: BaseNode.Class): Generator<SearchVisit> {
        // Your implementation here
    }
}
And uses the yield keyword to return values.
A search algorithm that can be used in node search. See BaseNode.Class.search.