我完全不明白interfaceOCaml中的工作原理.
我们来看一个例子:

那么'这里的意思是什么?我的意思是我明白,在描述功能时,'a意味着arbitrary type.那么它的含义是什么?这是arbitrary set什么意思?
另外,为什么要把'放在前面set?
在解释这个例子时,Jason Hickey的Objective Caml简介说:
我们需要抽象地定义一组多态类型的集合.也就是说,在接口中,我们将声明一个类型'一个集合而不给出定义,阻止程序的其他部分知道或取决于我们选择的集合的特定表示.
从上面的陈述,我猜这意味着in interface definition, we should hide the implementation details.但隐藏了哪些细节?
它说,在实现文件中type 'a set = 'a list.
那怎么办?
这是this set only takes a list什么意思?如果它确实意味着这一点,是否有必要在接口文件中告诉它,因为这个用户set应该知道它只需要列表,对吧?