// some complex cases of assignment compat of generic signatures that stress contextual signature instantiation var f: (x: S) => void var g: (x: T[]) => void f = g; // ok g = f; // ok