Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it.
program test_tester_2 use tester implicit none type(tester_t) :: test call test%init() call test%assert_equal(1, 2) call test%print() end program test_tester_2