slicesToPred :: Traversal' QExpr [QSlice] -> [QSlice] -> State RuleState ([QSlice] -> Bool)
slicesToPred path slices =
    allApply <$> sequence [sliceToPred (path.ix i) slice | (slice, i) <- zip slices [0..]]
slicesToPred :: Traversal' QExpr [QSlice] -> [QSlice] -> State RuleState ([QSlice] -> Bool)
slicesToPred path slices =
    allApply <$> sequence [sliceToPred (path.ix i) slice | (slice, i) <- zip slices [0..]]
slicesToPred path slices =
    allApply <$> sequence [sliceToPred (path.ix i) slice | (slice, i) <- zip slices [0..]]