class Foo { x:T; self():Foo { return this; } map(callbackfn: () => U): Foo { return new Foo(); } set(x:T): void { } get(): T { return this.x; } } module.exports = Foo;