// NotifyingList is our new go-to way to wrap a list // with additional functions. persistable sclass SSIList extends NotifyingList is ByteIO { *() { init(); } *(Cl l) { initAndAddAll(l); } public void readWrite(ByteHead head) { head.exchangeInt(-> size(), size -> addAll(repF(size, -> new SSI))); head.exchangeAll(this); } BufferedImage render(WidthAndHeight size) { ret renderAll(this, size); } BufferedImage render(BufferedImage canvas) { ret renderAll(this, canvas); } BufferedImage renderOutlines(WidthAndHeight size) { ret main render(size, g -> { g.setColor(Color.black); for (ssi : this) ssi.drawOutline(g); }); } }