Why we cannot write something like that:
Func<int, int> operation = i == 1 
    ? (int a, int b) => a + b 
    : (int a, int b) => a * b;
Type of conditional expression cannot be determined because there is no implicit conversion between 'lambda expression' and 'lambda expression'