You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Based on the conversation on pull request #27 I'm wondering if it ever makes sense to leave the These constructors introduced by an Align instance unevaluated, since the reasoning involved isn't specific to HashMap at all.
At very least we should probably use the strict version for Data.Map and Data.IntMap, which have "strict" modules with a shared base type like HashMap does. Pull request #29 from @phadej covers the first, but not the second.
For other types we'd have to seq the results manually, but other than cluttering the code up slightly it seems strictly (heh) better than creating more thunks.
The text was updated successfully, but these errors were encountered:
I don't really strong opinion about others, as it isn't required by data structures "promises". I cannot come with the way to break seqd versions though.
If you feel like it, go ahead and add IntMap and commit the change. If not, I'll take care of it later.
I'm gonna think a bit more about the other instances before changing some/all of them. I'm nearly certain it's safe if the only potential bottoms are the elements in the data structures, but not sure about the scenario where the "spine" of an input contains bottoms.
I think I'm deciding I don't feel like deciding about this right now. The effort of convincing myself that forcing it is correct in all cases is probably greater than any benefit it would have.
I still think it's probably the Right Thing(tm) so I'll leave this issue open for now in case someone else wants to think about it.
But for now, the changes that have already been merged are enough.
Based on the conversation on pull request #27 I'm wondering if it ever makes sense to leave the
These
constructors introduced by anAlign
instance unevaluated, since the reasoning involved isn't specific toHashMap
at all.At very least we should probably use the strict version for
Data.Map
andData.IntMap
, which have "strict" modules with a shared base type likeHashMap
does. Pull request #29 from @phadej covers the first, but not the second.For other types we'd have to
seq
the results manually, but other than cluttering the code up slightly it seems strictly (heh) better than creating more thunks.The text was updated successfully, but these errors were encountered: