I suspect there could be a performance improvement if we used Judy arrays for EqSat.Internal.MHashMap. We'd probably need to make our own typeclass that replaces Hashable with something that will work better with the performance characteristics of Judy arrays (since sparse keys are undesirable).
[ ] Figure out whether or not it is safe to use the functions from judy with unsafeIOToST.
[ ] Write a wrapper module over Data.Judy that exposes a cleaner interface using ST.
[ ] Write benchmarks for EqSat.Internal.MHashMap.
[ ] Write a typeclass for hashing into keys usable in Judy arrays.
[ ] Switch EqSat.Internal.MHashMap over to Judy arrays.
I suspect there could be a performance improvement if we used Judy arrays for
EqSat.Internal.MHashMap
. We'd probably need to make our own typeclass that replacesHashable
with something that will work better with the performance characteristics of Judy arrays (since sparse keys are undesirable).judy
withunsafeIOToST
.Data.Judy
that exposes a cleaner interface usingST
.EqSat.Internal.MHashMap
.EqSat.Internal.MHashMap
over to Judy arrays.