b.ts(2,14): error TS2322: Type 'number' is not assignable to type 'string'.
c.ts(2,25): error TS2314: Generic type 'Merged<T, U>' requires 2 type argument(s).
types.d.ts(7,32): error TS2344: Type '{ a: Str; b: number; }' does not satisfy the constraint 'Shape'.
  Property 'b' is incompatible with index signature.
    Type 'number' is not assignable to type 'Base'.
types.d.ts(8,18): error TS2428: All declarations of 'Merged' must have identical type parameters.
types.d.ts(10,18): error TS2428: All declarations of 'Merged' must have identical type parameters.
types.d.ts(11,41): error TS2344: Type '{ d: string; }' does not satisfy the constraint 'Shape'.
  Property 'd' is incompatible with index signature.
    Type 'string' is not assignable to type 'Base'.
types.d.ts(13,32): error TS2344: Type '{ e: boolean; }' does not satisfy the constraint 'Shape'.
  Property 'e' is incompatible with index signature.
    Type 'boolean' is not assignable to type 'Base'.
types.d.ts(15,41): error TS2344: Type '{ g: Str; h: null; }' does not satisfy the constraint 'Shape'.
  Property 'h' is incompatible with index signature.
    Type 'null' is not assignable to type 'Base'.
types.d.ts(17,34): error TS2344: Type 'number' does not satisfy the constraint 'string'.
types.d.ts(18,22): error TS2451: Cannot redeclare block-scoped variable 'dup'.
types.d.ts(19,50): error TS2344: Type '{ k: 1; }' does not satisfy the constraint 'Shape'.
  Property 'k' is incompatible with index signature.
    Type 'number' is not assignable to type 'Base'.
types.d.ts(20,22): error TS2451: Cannot redeclare block-scoped variable 'dup'.
types.d.ts(21,28): error TS2304: Cannot find name 'Missing'.
types.d.ts(22,18): error TS2428: All declarations of 'Merged' must have identical type parameters.
types.d.ts(23,28): error TS2314: Generic type 'Obj<T>' requires 1 type argument(s).
