public override ICollection <IParseTree> Evaluate(IParseTree t)
 {
     if (invert)
     {
         return(new List <IParseTree>());
     }
     // !* is weird but valid (empty)
     return(Trees.Descendants(t));
 }