@@ -80,21 +80,21 @@ splitLevel table n e eops =
8080joinL :: [LExpr t v] -> [String] -> IParser (LExpr t v)
8181joinL [e] [] = return e
8282joinL (a:b:es) (op:ops) = joinL (merge a b (Binop op a b) : es) ops
83−joinL _ _ = fail "Ill-formed binary expression. Report a compiler bug."
83+joinL _ _ = failure "Ill-formed binary expression. Report a compiler bug."
8484
8585joinR :: [LExpr t v] -> [String] -> IParser (LExpr t v)
8686joinR [e] [] = return e
8787joinR (a:b:es) (op:ops) = do e <- joinR (b:es) ops
8888 return (merge a e (Binop op a e))
89−joinR _ _ = fail "Ill-formed binary expression. Report a compiler bug."
89+joinR _ _ = failure "Ill-formed binary expression. Report a compiler bug."
9090
9191getAssoc :: OpTable -> Int -> [(String,LExpr t v)] -> IParser Assoc
9292getAssoc table n eops
9393 | all (==L) assocs = return L
9494 | all (==R) assocs = return R
9595 | all (==N) assocs = case assocs of [_] -> return N
96− _ -> fail (msg "precedence")
97− | otherwise = fail (msg "associativity")
96+ _ -> failure (msg "precedence")
97+ | otherwise = failure (msg "associativity")
9898 where levelOps = filter (hasLevel table n) eops
9999 assocs = map (opAssoc table . fst) levelOps
100100 msg problem =