--------------------------------------------------------------------------------

exprsToPred :: Traversal' QExpr [QExpr] -> [QExpr] -> State RuleState [ExprPred]
exprsToPred path es = sequence [exprToPred (path.ix i) e | (e, i) <- zip es [0..]]
exprsToPred :: Traversal' QExpr [QExpr] -> [QExpr] -> State RuleState [ExprPred]
exprsToPred path es = sequence [exprToPred (path.ix i) e | (e, i) <- zip es [0..]]
exprsToPred path es = sequence [exprToPred (path.ix i) e | (e, i) <- zip es [0..]]