expressionvisitor

System.Linq.Expressions.ExpressionVisitor is inaccessible due to its protection level

I'm trying to follow the instructions on Creating an IQueryable LINQ Provider, but when I implement the classes which inherit from ExpressionVisitor as instructed I am told that ExpressionVisitor is inaccessible due to its protection level. Am I missing something incredibly basic? ...

What does ExpressionVisitor.Visit<T> Do?

Before someone shouts out the answer, please read the question through. What is the purpose of the method in .NET 4.0's ExpressionVisitor: public static ReadOnlyCollection<T> Visit<T>(ReadOnlyCollection<T> nodes, Func<T, T> elementVisitor) My first guess as to the purpose of this method was that it would visit each node in each tree ...