OCaml: Why does renaming a type fail with “Their kinds differ”
问题 I'm building an universal container for for pairs of a type witness and a value of the witnessed type. This I want to use for several different types, which gives me errors because the types are all named the same. So I'm trying to rename types in the result of a functor like this: module type Witness = sig type 'a key type 'a value end module type Witnessed = sig type 'a key type 'a value type t type ('a, 'b) conv = { key : 'c . 'c key -> 'a; value : 'c . 'c value -> 'b; } val box : 'a key -