haskell / fgl

A Functional Graph Library for Haskell
http://hackage.haskell.org/package/fgl
Other
184 stars 54 forks source link

Make the internal queue monadic #41

Open treeowl opened 8 years ago

treeowl commented 8 years ago

Data.Graph.Inductive.Internal.Queue isn't efficient for persistent use. It would be easier to ensure that it's not accidentally used persistently if it's given a monadic interface. It should probably also be benchmarked against other queue implementations, such as Control.Monad.Queue.Corec from control-monad-queue, my own considerable simplification thereof, or perhaps something fancier in ST.

ivan-m commented 8 years ago

I'm hesitant to add any dependencies due to the fact that fgl is in the Platform. But I don't disagree that the various Data.Graph.Inductive.Internal.* modules aren't all that great.