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

comprehensionToPred :: Traversal' QExpr QComprehension -> QComprehension -> State RuleState ComprehensionPred
comprehensionToPred path (Comprehension e for _) = do
    ep <- comprehensionExprToPred (path.comprehension_exprL) e
    forp <- compForToPred (path.comprehension_forL) for
    return $ pComprehension ep forp
comprehensionToPred :: Traversal' QExpr QComprehension -> QComprehension -> State RuleState ComprehensionPred
comprehensionToPred path (Comprehension e for _) = do
    ep <- comprehensionExprToPred (path.comprehension_exprL) e
    forp <- compForToPred (path.comprehension_forL) for
    return $ pComprehension ep forp
comprehensionToPred path (Comprehension e for _) = do
    ep <- comprehensionExprToPred (path.comprehension_exprL) e
    forp <- compForToPred (path.comprehension_forL) for
    return $ pComprehension ep forp