我正在使用可区分的联合构建表达式树。下面的代码:
type IntExpression =
| TrueIsOne of BoolExpression
type BoolExpression =
| LessThan of IntExpression * IntExpression
| And of BoolExpression * BoolExpression
| Or of BoolExpression * BoolExpression
| Bool of bool
抛出错误,因为 BoolExpression 未定义。正如您所期望的那样,交换定义只会导致相反的结果(未定义 IntExpression)。
有没有解决的办法?