builtin ["os.file", "base"];

readInt=func(fh){
	line=readFile(fh);
	line ? [nil] {nil} :: {int(line)}
};

ds={
	"init":func(filename){
		fh=openFile(filename);
		fh ? [nil] {nil} :: { @current=readInt(fh); @prev=@current };
		fh
	},
	"current":func(){
		prev
	},
	"next":func(fh){
		current ? 
			[nil] {current}
			:: {@prev=current; @current=readInt(fh) but current}
	},
	"clean":func(fh){
		closeFile(fh)
	}
}

//;f=$(ds, "int.list")
/*
;f++
;f++
;f++
*/
//;add(f)