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