containers
containers copied to clipboard
Assorted concrete container types
It is possible to make the code for merge tactics generic (so it can be used for Map and IntMap without duplication, and could also be used for other map-like...
I noticed that the marking array we use for DFS doesn't always get unboxed (at least, it didn't in one of my lazy preorder experiments). So I tried making the...
While cloning the main ghc repository (using `git clone https://gitlab.haskell.org/ghc/ghc.git --recurse-submodules`) I noticed that the `containers` repository was being cloned. That's OK because the `containers` library is a submodule of...
Apparently balanceR functions in eg Data.Map.Internal and Data.Set.Internal can fail with a message like "Failure in Data.Map.balanceR" (related: #902). And this brought down (briefly) much of the Cardano blockchain: https://github.com/input-output-hk/cardano-node/issues/4826...
This should make working on containers easier when on windows. Fixes #885
The original paper we base `Data.Graph` on expects *lazy* `ST`, but we use *strict* `ST`. Depending how the result is consumed, lazier might be better. For ordered traversals (producing lists...
I don't know what can be done here, but GHC uses it, and that makes it a top `Data.Graph` priority.
* The `collect` function recursively `concat`s on a tree, making the time complexity quadratic. This can be avoided using difference lists. * The `do_label` step builds some unnecessary intermediate trees,...
`graphFromEdges` is one way to construct a `Graph` in `Data.Graph`, and the line in it which actually constructs the graph looks like https://github.com/haskell/containers/blob/d8d163a8baa43a7c8ba9b6f4198ee1e398e730d6/containers/src/Data/Graph.hs#L450 This is _very_ lazy. The elements of...