[vector] #54: Missing NFData instances for vector types
vector
vector at projects.haskell.org
Sun Jan 29 12:10:59 GMT 2012
#54: Missing NFData instances for vector types
------------------------+---------------------------------------------------
Reporter: hvr | Owner:
Type: enhancement | Status: reopened
Priority: blocker | Milestone: 0.10
Version: 0.7 | Resolution:
Keywords: |
------------------------+---------------------------------------------------
Changes (by rl):
* status: closed => reopened
* resolution: fixed =>
Comment:
Actually, I'm not sure that the `NFData` instance for boxed mutable
vectors is safe. Compare this:
{{{
do
write v 0 x
rnf v `seq` return ()
}}}
with this:
{{{
do
rnf v `seq` return ()
write v 0 x
}}}
Assuming that the `write` can't fail, if `rnf` is pure then the two should
be equivalent. But they clearly aren't.
It seems that for mutable vectors, you'd need a monadic version of `rnf`.
Maybe that's something that the `deepseq` package should provide.
I'll comment out the instance in question and reopen the ticket for now.
--
Ticket URL: <http://trac.haskell.org/vector/ticket/54#comment:13>
vector <http://trac.haskell.org/vector>
Package vector
More information about the vector
mailing list