private void matchFrom(K value, Node node, Batch <Node> matches) {
    final int comp = compare(value, (K) node.value) ;
    if (comp == 0) matches.add(node) ;
    if (node.kidL != null) {
      if (comp <= 0 || compare((K) node.kidL.value, (K) node.value) != -1) {
        matchFrom(value, node.kidL, matches) ;
      }
    }
    if (node.kidR != null) {
      if (comp >= 0 || compare((K) node.kidR.value, (K) node.value) !=  1) {
        matchFrom(value, node.kidR, matches) ;
      }
    }
  }