Oug: Exemple 3
Code

module M1 = struct
type t
let f x = x + 1
end;;
module M2 = struct
include M1
let g = f
let f x = x + 2
end;;

module F = functor (A : sig type t end) ->
struct
let foo x = M1.f x + M2.f x
end;;

module Foo = F(M1)
let g = Foo.foo;;

module Bar = Foo;;
let gbar = Bar.foo;;
let h = gbar;;
Oug graph

Graph

Debug graph

Debug graph