@Override
    public LetStatement toLetStatement(LetStatement statement) {
      Transformer nested = new Transformer(scope.nest());
      return statement
          .withDeclaration(nested.asLetStatementDeclaration(statement, statement.declaration()))
          .withParts(nested.asLetStatementPartsElements(statement, statement.parts()));
    }
Overriden to specify order in which we process declaration first, and then parts.
generator-processor/src/org/immutables/generator/processor/TypeResolver.java