I'll need a better example because right now my thoughts tell me
that "read" makes more sense than "foo_read".
In this example you could grant "read" permission on "parent_module"
and instantly the indicated party has "read" permission on all shown
modules.
Or you could grant "read" permission on "foo" and the indicated
party has "read" permission on "foo" and "bar".
The alternative seems much more complex to me, requiring the
granting and/or management of "parent_module_read", "foo_read",
"bar_read",
"weather_read", and "news_read" and effectively destroying the
hierarchy of permissions.