 	Cache: CacheType
 	where
 	Cache.Key == Renderer.Data,
-	Cache.Value == UIImage
+	Cache.Value == Renderer.RenderResult
 >: RendererType {
 	private let renderer: Renderer
 	private let cache: Cache

	/// Surrounds this renderer with a layer of caching.
	public func withCache<
		Cache: CacheType
		where Cache.Key == Self.Data, Cache.Value == UIImage
		>(cache: Cache) -> CacheRenderer<Self, Cache>
	{
		return CacheRenderer(renderer: self, cache: cache)

				return renderer
					.renderImageWithData(data)
					.on(next: { [cache = self.cache] result in
						cache.setValue(result, forKey: data)
					})
					.map { $0.image.asCacheMiss }
			}
