public static class OverrideyBoi
public static TResult Override<TResult, TObject>(this TObject o, Func<TObject, TResult> what, Func<TResult, TResult> with)
public Func<int, bool, string> GivenIntAndBoolReturnString = (i, b) => i == 0 && b ? "YEP" : "NOPE";
public Func<int, string> GivenIntReturnString = i => i == 1 ? "YEP" : "NOPE";
public static void Main()
var options = new Options();
Console.WriteLine(options.GivenIntAndBoolReturnString(0, true));