if (acceptResult(path)) { results.add(new Result<>(path.input.get(), path.output)); } else {
if (acceptResult(path)) {
if (acceptResult(path)) { results.add(new Result<>(path.input.get(), path.output)); } else {
protected boolean acceptResult(FSTPath<T> path) { return acceptResult(path.input.get(), path.cost); }
protected boolean acceptResult(FSTPath<T> path) { return acceptResult(path.input.get(), path.output); }
protected boolean acceptResult(FSTPath<T> path) { return acceptResult(path.input.get(), path.cost); }
protected boolean acceptResult(FSTPath<T> path) { return acceptResult(path.input.get(), path.output); }