public LazyValue(IValue value, Func<object> factory) { InnerValue = value; _factory = factory; _actualType = new Lazy<CachedType>(() => InnerValue.Instance.ToCachedType()); }