https://issues.dlang.org/show_bug.cgi?id=16572 --- Comment #2 from anonymous4 <dfj1esp02 at sneakemail.com> --- A small interaction between contravariance and inout here: inout(A) f(inout B b) inout; If you resolve the type as A delegate(B) you can't pass const(B) as argument. --