The function memo
accepts an argument `key` which
specifies the keying strategy.
digest_key(fn, cache, digest = digest::digest)pointer_key(fn, cache)
hybrid_key(fn, cache, digest = function(x) digest::digest(x, "md5"))
A memoized function.
A function whose results should be cached.
A cache object.
A digest function to use.