IExpressionTreeNode InjectInto(PredicateConnectiveNode targetConnective, Func<IPredicateConnectiveNode> createConnectiveNode)
 {
     if (targetConnective == null)
         throw new ArgumentNullException("node");
     
     return InjectInto(this, targetConnective, createConnectiveNode);
 }
        IExpressionTreeNode InjectInto(PredicateConnectiveNode targetConnective, Func<IPredicateConnectiveNode> createConnectiveNode)
        {
            // todo:

            return FindRoot();
        }