I've been taking a look to ...Roslyn CTP... and, while it solves a similar problem to the ...Expression tree API..., both are immutable but Roslyn does so in a quite different way: ...Expression... nodes have no reference to the parent node, are modified ...