【发布时间】:2014-06-15 21:20:04
【问题描述】:
在 OCaml 顶层中,我有以下类型定义:
type 'a lazy_list =
| Nil
| Cons of 'a * 'a lazy_list
| LazyCons of 'a * 'a lazy_list
(本例已简化)
还有这个函数定义:
let head = function
| Nil -> Nil
| Cons(x,_) | LazyCons(x,_) -> x
ocaml 顶层告诉我head 的类型是'a lazy_list lazy_list -> 'a lazylist 为什么不是'a lazy_list -> 'a,这是我所期望的?
【问题讨论】:
标签: ocaml type-inference algebraic-data-types