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

argumentsToPred :: Traversal' QExpr [QArgument] -> [QArgument] -> State RuleState ArgumentsPred
argumentsToPred path args =
    allApply <$> sequence [argumentToPred (path.ix i) arg | (arg, i) <- zip args [0..]]
argumentsToPred :: Traversal' QExpr [QArgument] -> [QArgument] -> State RuleState ArgumentsPred
argumentsToPred path args =
    allApply <$> sequence [argumentToPred (path.ix i) arg | (arg, i) <- zip args [0..]]
argumentsToPred path args =
    allApply <$> sequence [argumentToPred (path.ix i) arg | (arg, i) <- zip args [0..]]