channel Signup {
out accounts(acDB:Map, signUp(aid:Str, name:Str)) = insert(acDB, aid, {"name": name, "vote": null})
}
channel Cast(aid:Str) {
out accounts.{aid}.vote(preV, cast(v:Str)) = v
}
channel Collect {
for EachAccount(aid:Str) {
in accounts.{aid}.vote(preV:Str, collect(m)) = m.{aid}
}
out counts(preCnts:Json, collect(m)) = m
}