Rec = type {x:: int, y:: int}. test = function(base:: int):: int; entry() { fields = intrinsic rec_fields("Rec"):: [string]; i12n(on()). result = loop fold(fields->field:: string, {undef, 0}->ctx):: {rec:: Rec, id:: int} { { (ctx["rec"]::Rec) : {[field] = base + ctx["id"] }, ctx["id"]+1 }:: {rec:: Rec, id:: int} }. result["rec"]["y"] }