В программе space leak, но как искать его непонятно: ghc&
#39;шный профайлинг говорит, что всё занимается PINNED-памятью (поскольку я оперирую в основном ByteString&
#39;ами), и никаких подробностей о том, где она выделена, и что её держит, не говорит --
https://gitlab.haskell.org/ghc/ghc/-/issues/7275
Как обычно в таких случаях, алгоритм по-хорошему должен в константной памяти работать, но вместо этого память жрётся и жрётся в ходе работы программы, освобождаясь только в конце.
https://github.com/l29ah/hyborg/blob/master/Main.hs#L115
Есть ли варианты лучше, чем бинарный поиск по коду методом комментирования? Кажется, в случае хаскеля это вообще так себе метод поиска утечек, поскольку в случае когда мы комментируем какого-нибудь потребителя данных, мы можем ненароком внести ещё один space leak, например когда большой thunk вычисляется по ходу итеративного алгоритма в компактный результат, либо это вычисление откладывается до самого конца, накапливая большие thunk&
#39;и в памяти.