//@flow

function identity<T>(x: T): T { return x }

identity<_>(3);
//       ^?
identity<_>('string');
//       ^?

declare function createObj<T>(): {x: T};

const x: {x: number|string} = createObj<_>();
//                                      ^?
x.x = 3;
x.x = "string";
