Calls fn with self and returns self, for fluent chaining.
fn
T onSelf(void Function(T self) fn) { fn(self); return self; }