id	summary	reporter	owner	description	type	status	priority	milestone	version	resolution	keywords	cc
15	"Add ""generalised scan"""	rl		"In any case, vector could well provide an operation like this:

{{{
cant_think_of_a_name :: Vector v a => Int -> (v a -> a) -> v a
}}}

The function would take the initialised prefix of the vector (starting with empty) and produce the next element. This would require a bit of hackery underneath but the interface would be safe and pure. Would something like this be useful?

See http://www.haskell.org/pipermail/glasgow-haskell-users/2010-May/018816.html

Note that we can't `unsafeFreeze` the vector until we are done because that would break GC for boxed vectors. Also, we can't recycle the vector because `a` could be a thunk with references to the intermediate `v a`."	enhancement	new	minor		0.7			
