public static void Main()
Action<Base> baseAction = (Base b) => Console.WriteLine("Base: " + b);
Action<Derived> derivedAction = baseAction;
Action<Action<Derived>> derivedHigherOrderFunction = (Action<Derived> action) => {
Action<Action<Base>> baseHigherOrderFunction = derivedHigherOrderFunction;
baseHigherOrderFunction(baseAction);
public class Derived : Base{}