interface CacheProvider
abstract fun <K, V> computeIfAbsent(key: K, func: (K) -> V): V
class NaiveCacheProvider : CacheProvider