The solution is to append `line.dup` instead of `line`.
I guess this note in the documentation should be marked red:
Each front will not persist after popFront is called, so the caller must copy its contents (e.g. by calling to!string) if retention is needed.