What is the difference between Function and (...args: any[]) => any?
Interestingly, I just noticed that Function is not assignable to (...args: any[]) => any, but why?
declare let foo: Function;
declare let bar: (...args: any[]) => any;
bar = foo;
// ~~~
// ^^^
// Type 'Function' is not assignable to type '(...args: any[]) => any'.
// Type 'Function' provides no match for the signature '(...args: any[]): any'. (2322)