这更像是一个风格问题,而不是其他任何问题。给定以下代码:
case e1 of (* datatype type_of_e1 = p1 | p2 *)
p1 => case e11 of (* datatype type_of_e11 = NONE | SOME int *)
NONE => expr11
| SOME v => expr12 v
| p2 => case e21 of (* datatype type_of_e21 = NONE | SOME string *)
NONE => expr21
| SOME v => expr22 v
除了将p1的表达式括在括号中之外,有没有办法解决types of rules don't agree
由于尝试将e11与p2进行模式匹配而导致的错误?p2模式有另一个 case 语句,以避免“只是切换模式”的答案;-)。
更新:更改了代码以反映更具体的情况