David Feuer
David Feuer
Interesting. My immediate intuition is that there might be a nice way to do this with a `Biapplicative` analogue of the merge API. I'll try to think later about whether...
My guess is that sharing is the problem. Do things improve if you write it like this? ```haskell main = defaultMain [ bench "1" $ nf length [1 .. 10^7...
Let me know when you get it working and I'll merge.
Any further ideas?
Hmmm... Yeah, I think we use symbolic links to share files between `containers` and `containers-tests`. Do you know a better way?
Can you try it and open a PR?
Also descending versions?
Your implementations all look weird to me. This is a deserialization problem. ```haskell fromDistinctAscendingListN :: Int -> [a] -> (Set a, [a]) fromDistinctAscendingListN n xs | s :!* remains [a]...
Mine looks a lot like a direct version of your continuation-passing ones. I'd expect it to be easier on the optimizer.
I agree none of this makes sense. There's no reasonable world in which adding the overhead of `STRef` and such should improve matters. Is GHC doing something very silly? Was...