#TypeScript Version:  2.3.4
Code
// I can conveniently annotate a function express with a type
// This is good because the types don't litter the implementation
{
    type add = (a: number) => (b: number) => number;
    const add: add = a => b => a + b; // a and b are type number
}
// However, if I try to do the same where the function type has a generic…
{
    type fn = <A>(a: A) => A;
    const fn: fn = a => a; // a is inferred as any, but expected A
}Is there any way to annotate the function expression fn with the type fn without breaking inference for the parameters?