Is it possible to `decode(o) is T` evaluates to false?

If `decode == null` then user get false message that `throw new Exception("Incompatible class for settings: " + name + ". Expected: " + typeof(T).FullName + ", found: " + o.GetType().FullName); `
There should be thrown ArgumentNullException in that case.