p: Project = input;NOA: output sum[string][int] of int;
visit(p, visitor { before n: Revision -> { visit(n , visitor { before node: Declaration -> if (node.kind == TypeKind.CLASS) NOA[p.id][yearof(n.commit_date)] << len(node.fields); }); }});
p: Project = input;
NOA: output sum[string][int] of int;
year : int;
visit(p, visitor {
before n: Revision -> year = yearof(n.commit_date);
before n: Declaration ->
if (n.kind == TypeKind.CLASS)
NOA[p.id][year] << len(n.fields);
});