`module type S = sig ... end`
`module B (X : Builder.S) : S with type graph = X.G.t and type vertex := X.G.vertex and type edge := X.G.edge and type edge_label = X.G.E.label`

Extension for the module `X`.

`module P (G : Sig.P) : S with type graph = G.t and type vertex := G.vertex and type edge := G.edge and type edge_label = G.E.label`

Extension for the module `G`.

`module I (G : Sig.I) : sig ... end`

Extension for the module `G`.