@jyapayne, I might be doing something differently, but here's what I'm finding.
1. Go to a line that exceeds the buffer size (e.g., the line starting with #CHROM; I assume you're testing on `ALL.chrX.phase3_shapeit2_mvncall_integrated_v1b.20130502.genotypes.vcf.gz`) 2. Search for `CHROM`, and I believe you'll find at least one additional occurrence of it on that line (there should only be one) I haven't worked with pointers since college, so I may not be following everything correctly, but I believe the bug is in the following conditional statement: if data[last] == '\l': buffer.add data[last+1 ..< pos] Run Essentially, on any line that exceeds the buffer, I think it's adding everything from the beginning of the buffer to the new `pos` value, because `last` is not updating. I assume it breaks out of that loop once it gets to the end of that line and encounters `\L`. I hope I'm not making you chase a non-existent bug, but I don't see that I'm making any errors.