出于某种原因,当在模式匹配错误处理表达式中使用中缀运算符时,Idris会感到困惑。
Right f <- openFile filename Read
| Left err => printLn err *> pure (_ ** [])
not a terminator, expected: ";", "in", "|", end of input,
function argument | Left err => printLn err *> pure (_ ** []) ^
但是,如果用前缀表示法写的话,它可以正常工作。
Right f <- openFile filename Read
| Left err => (*>) (printLn err) (pure (_ ** []))
这是一个错误吗? 解析失败的原因是什么?