public static Func<Func<int, T>, Func<bool, T>, T> getEither<T>() {
return (useInt, useBool) => useBool(false);
public static void Main()
var result = getEither<String>()(x => "got an int: " + x.ToString(), x => "got a bool: " + x.ToString());
Console.WriteLine(result);