Easier to read?

```
calls.forEach((name, callArities) {
	callArities.forEach((arity){
		arities.putIfAbsent(arity, () => new Set<String>()).add(name);
	}); 
});

var maxArity = arities.values.reduce((x, y) => max(x, y));

var maps = Iterable.generate(maxArity, (arity) {	
	var names = arities[arity];
	if (names == null) {
		return '{\n    }';
	} else {
		var args = i == 0 ? '' : new List.generate(i, (e) => "a$e").join(',');
		var p = args.isEmpty ? '' : ',$args';
		var lines = names.map((name) => 'r"$name": (o$p) => o.$name($args)');
		return '{\n    ${lines.join(",\n    ")}\n  }';
	}
});
```