<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>On Sat, Jan 2, 2016, at 07:17 PM, Dave Abrahams wrote:<br></div>
<blockquote type="cite"><div><blockquote type="cite"><div><div><div>But since it's a CollectionType, you need to preserve the ability to access older values.<br></div>
</div>
</div>
</blockquote><div>&nbsp;</div>
<div>Not once you replace it with a slice of itself.<br></div>
</div>
</blockquote><div>&nbsp;</div>
<div>Ah I see, I missed that subtlety. Or more specifically, when you first said "slice" I was thinking of the Slice struct, but if you implement slicing by hand then you can do this just fine.<br></div>
<div>&nbsp;</div>
<blockquote type="cite"><div><blockquote type="cite"><div><div><div>So the only way to actually have this be a CollectionType is to buffer the entire sequence up to the highest-accessed index.<br></div>
<div>&nbsp;</div>
<div>Of course, your use-case of processing a stream with some amount of lookahead and throwing away the old data actually sounds like something a "BufferedSequence" might provide. Or actually, a "BufferedGenerator", because the only way to process a sequence is with a generator and so all a "BufferedSequence" would really do is just give you a "BufferedGenerator" from its generate() method.<br></div>
</div>
</div>
</blockquote><div>&nbsp;</div>
</div>
<div>I’m quite certain this is buildable. &nbsp;I’ve got my hands full at the moment or I’d create a prototype…<br></div>
</blockquote><div>&nbsp;</div>
<div>Now that I realize exactly what you meant, it should indeed be buildable. Though short of requiring the user to provide it, I'm not sure how to pick an appropriate chunk size.<br></div>
<div>&nbsp;</div>
<div>-Kevin Ballard</div>
</body>
</html>