using System; class Foo {} class Repro { public static void Main () { } static void Bar (TFoo foo) where TFoo : Repro { Baz (foo, Gazonk); } static void Baz (T t, Action a) { a (t); } static void Gazonk (Repro f) { } }