code: void put(
      Conjunction selector,
      MatchTarget object,
      InternTable subExpr)
      throws MatchingException
    {
      SimpleTest test = Factory.findTest(ordinalPosition, selector);
      if (test == null)
        super.put(selector, object, subExpr);
      else
      {
        ContentMatcher next;
        if (test.getKind() == SimpleTest.NULL)
          next = nullChild = nextMatcher(selector, nullChild);
        else
          if (test.getKind() == SimpleTest.NOTNULL)
            next = notNullChild = nextMatcher(selector, notNullChild);
          else
          {
            handlePut(test, selector, object, subExpr);
            return;
          }
        next.put(selector, object, subExpr);
      }
    }
docs: Implementation of put method (handles nullChild and notNullChild; parent handles
  vacantChild; handlePut method in subclasses handles everything else).