Types 为什么ocaml推断bool类型?

Types 为什么ocaml推断bool类型?,types,ocaml,Types,Ocaml,我有以下定义: 键入'a tree=Leaf |节点'a*'树*'树 和功能 let rec is_bst't:'a tree:[>`Empty | `Failure | `Success of'a*'a]=与t匹配 |叶子->空的 |Nodex,l,r->match is_bst'l,is_bst'r with |“失败,——>”失败 |_uz,`Failure->`Failure |`Empty,`Empty->`Empty |`Successa,b,`Empty->如果b如果x如果b

我有以下定义:

键入'a tree=Leaf |节点'a*'树*'树 和功能

let rec is_bst't:'a tree:[>`Empty | `Failure | `Success of'a*'a]=与t匹配 |叶子->空的 |Nodex,l,r->match is_bst'l,is_bst'r with |“失败,——>”失败 |_uz,`Failure->`Failure |`Empty,`Empty->`Empty |`Successa,b,`Empty->如果b如果x如果b 布尔树->[`Empty | ` Failure | `布尔的成功*bool] 为什么会发生这种情况?有可能解决吗?

看起来b 这里说9应该是布尔

所以c:bool=>Successc,d==bool*bool的成功。

看起来b 这里说9应该是布尔


所以c:bool=>Successc,d==bool*bool的成功。

问题是b# 4 < 7 < 9 _ ;; Error: This expression has type int but an expression was expected of type bool