Fix folding

This commit is contained in:
Joscha 2020-03-01 00:22:25 +00:00
parent 64aa07e04c
commit dc9353a374

View file

@ -27,7 +27,10 @@ flatten ln
| lineFolded ln = V.singleton ([], ln) | lineFolded ln = V.singleton ([], ln)
| otherwise = | otherwise =
V.cons ([], ln) $ V.cons ([], ln) $
V.imap (\i (is, n) -> (i : is, n)) $ V.concatMap flatten $ lineChildren ln V.concat $ V.toList $ V.imap flattenChild $ lineChildren ln
where
flattenChild :: Int -> LineNode -> V.Vector (Path, LineNode)
flattenChild i c = V.map (\(is, n) -> (i : is, n)) $ flatten c
modify :: (LineNode -> LineNode) -> Path -> LineNode -> LineNode modify :: (LineNode -> LineNode) -> Path -> LineNode -> LineNode
modify f [] ln = f ln modify f [] ln = f ln