private void MapAliases(Expression a, Expression b)
 {
     var gatherer = new DeclaredAliasGatherer();
     Alias[] prodA = gatherer.Gather(a).ToArray();
     Alias[] prodB = gatherer.Gather(b).ToArray();
     for (int i = 0, n = prodA.Length; i < n; i++)
     {
         _aliasScope.Add(prodA[i], prodB[i]);
     }
 }