https://github.com/Ladybug-Memory/icebug/blob/main/docs/ICEBUG_DESIGN.md describes how things are setup.
Since GraphW inherits Graph, it gets all CSR related state as member variables. This is suboptimal.
Consider an alternative design where Graph is an interface and GraphR and GraphW implement the interface.