我正在瀏覽ocaml的標準庫,並在map.ml文件中遇到此代碼。爲什麼在這種類型之前有一個加號?
module type S =
sig
type key
type +'a t
val empty: 'a t'
我不知道爲什麼會有type +'a t
,爲什麼筆者使用它,而不是簡單地'a t
。
它的行爲很奇怪,我不能推斷它的用法。
# type +'a t = 'a list;;
type 'a t = 'a list
# type +'a t = +'a list;;
Characters 13-14:
type +'a t = +'a list;;
^
Error: Syntax error
由於
Jane Street的相關文章:https://blogs.janestreet.com/a-and-a/ – 2017-03-17 14:05:10