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