如何实现多态函数的缓存

目前的类型系统没有逃生舱感觉无法实现

参考这个看看?

之前查到过,结论就是没有办法支持

举个例子

struct MutableCollection[M, I, A] {
  get : (M, I) -> A?
  set : (M, I, A) -> Unit
}

fn MutableCollection::get_map[I : Hash + Eq, A]() ->
     MutableCollection[Map[I, A], I, A] {
  { get: fn(m, i) { m[i] }, set: fn(m, i, a) { m[i] = a } }
}

实际上甚至无法手动实现memoize