¿Por qué no se puede asignar un método anónimo a var?

Tengo el siguiente código: Func<string, bool> comparer = delegate(string value) { return value != "0"; }; Sin embargo, lo siguiente no se compila: var comparer = delegate(string value) { return value != "0"; }; ¿Por qué el compilador no puede entender que es un Func<string, bool>?...