cache
fun <A, R> ((A) -> R).cache(cacheOptions: CacheOptions = CacheOptions()): Pair<Cache<A, R>, (A) -> R>