Почему нельзя присвоить var анонимный метод?

У меня такой код: Func<string, bool> comparer = delegate(string value) { return value != "0"; }; Однако следующее не компилируется: var comparer = delegate(string value) { return value != "0"; }; Почему компилятор не может понять, что это Func<string, bool> ? Он принимает один...