/* @flow */ interface HasIdentityFunction { id<A>(a: A): A } class Example implements HasIdentityFunction { id<A>(a: A): number { return 42; } } var x: string = (new Example(): HasIdentityFunction).id("hello")