我正在处理很长的列表和大树。
有时我会发现这个错误:
surgery a;;
Characters 8-9:
surgery a;;
^
Error: This expression has type int t/1044
but an expression was expected of type 'a t/1810
# type 'a t = | Leaf of ('a -> 'a -> int)
| Node of 'a * 'a t * 'a t * ('a -> 'a -> int)
我不确定这种错误是什么类型,但我想这是某种溢出。类型正确匹配,但类型后面的反斜杠后有大量数字。在本例中为 1044 和 1810。
这次我之前运行了一些代码surgery a
。如果我杀死当前的顶级并重新开始,surgery a
就会运行。
我的问题是:
1.这个错误到底是什么?
2. 它何时以及如何发生?
3. 为什么从新的顶层重新运行它会使其工作?
4. 我应该如何处理?