Under `--strict`, which assignment is rejected, and what variance rule causes it?
interface Animal { name: string }
interface Dog extends Animal { bark(): void }
type FnA = (x: Animal) => void;
type FnD = (x: Dog) => void;
declare let fa: FnA;
declare let fd: FnD;
let x: FnD = fa; // (1)
let y: FnA = fd; // (2)