Delegate inference explained