I think understanding this thread: Composition and inheritance: the Julian way may give me the answers I need.
Maybe Graphs.jl would also need some PRs to make some of their methods dispatch on AbstractSimpleGraph instead of the concrete SimpleGraph?