Delegate which can optionally extract a HasValue
expression from a lambda sourceExpression.
public delegate bool TryExtractValue<T>(LambdaExpression sourceExpression,
out LambdaExpression hasValueExpression, out LambdaExpression remainingExpression)
where T : class;