interface Object { map(this: T, mapper: (value: T) => TOut): TOut; }