createCachedFun

fun <A, V> createCachedFun(calculate: (A) -> V): (A) -> V
fun <A, K, V> createCachedFun(calculateKey: (A) -> K, calculate: (A) -> V): (A) -> V