on the current graphml file from rejuvenation library (obtained with Dependency_Graph_Extractor)
one gets
╒══════════════════════════════════════════════════════════════════════╤═════════════╕
│"file" │"count(user)"│
╞══════════════════════════════════════════════════════════════════════╪═════════════╡
│{"relativeName":"rejuvenation-finder.adb","subtype":"AdaBodyFile","nam│12 │
│e":"file:src\rejuvenation-finder.adb","type":"File","fullyQualifiedNam│ │
│e":"src\rejuvenation-finder.adb"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-finder.ads","subtype":"AdaSpecificationF│10 │
│ile","name":"file:src\rejuvenation-finder.ads","type":"File","fullyQua│ │
│lifiedName":"src\rejuvenation-finder.ads"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-replacer.adb","subtype":"AdaBodyFile","n│8 │
│ame":"file:src\rejuvenation-replacer.adb","fullyQualifiedName":"src\re│ │
│juvenation-replacer.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-match_patterns.ads","subtype":"AdaSpecif│8 │
│icationFile","name":"file:src\rejuvenation-match_patterns.ads","fullyQ│ │
│ualifiedName":"src\rejuvenation-match_patterns.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-utils.adb","subtype":"AdaBodyFile","name│7 │
│":"file:src\rejuvenation-utils.adb","type":"File","fullyQualifiedName"│ │
│:"src\rejuvenation-utils.adb"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-match_patterns.adb","subtype":"AdaBodyFi│7 │
│le","name":"file:src\rejuvenation-match_patterns.adb","fullyQualifiedN│ │
│ame":"src\rejuvenation-match_patterns.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-utils.ads","subtype":"AdaSpecificationFi│7 │
│le","name":"file:src\rejuvenation-utils.ads","type":"File","fullyQuali│ │
│fiedName":"src\rejuvenation-utils.ads"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-find_and_replacer.adb","subtype":"AdaBod│4 │
│yFile","name":"file:src\rejuvenation-find_and_replacer.adb","fullyQual│ │
│ifiedName":"src\rejuvenation-find_and_replacer.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-placeholders.ads","subtype":"AdaSpecific│2 │
│ationFile","name":"file:src\rejuvenation-placeholders.ads","fullyQuali│ │
│fiedName":"src\rejuvenation-placeholders.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-placeholders.adb","subtype":"AdaBodyFile│2 │
│","name":"file:src\rejuvenation-placeholders.adb","fullyQualifiedName"│ │
│:"src\rejuvenation-placeholders.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-find_and_replacer.ads","subtype":"AdaSpe│1 │
│cificationFile","name":"file:src\rejuvenation-find_and_replacer.ads","│ │
│fullyQualifiedName":"src\rejuvenation-find_and_replacer.ads","type":"F│ │
│ile"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-factory.adb","subtype":"AdaBodyFile","na│1 │
│me":"file:src\rejuvenation-factory.adb","fullyQualifiedName":"src\reju│ │
│venation-factory.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-parameters.ads","subtype":"AdaSpecificat│1 │
│ionFile","name":"file:src\rejuvenation-parameters.ads","fullyQualified│ │
│Name":"src\rejuvenation-parameters.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-navigation.ads","subtype":"AdaSpecificat│1 │
│ionFile","name":"file:src\rejuvenation-navigation.ads","fullyQualified│ │
│Name":"src\rejuvenation-navigation.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-patterns.adb","subtype":"AdaBodyFile","n│1 │
│ame":"file:src\rejuvenation-patterns.adb","fullyQualifiedName":"src\re│ │
│juvenation-patterns.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-factory.ads","subtype":"AdaSpecification│1 │
│File","name":"file:src\rejuvenation-factory.ads","fullyQualifiedName":│ │
│"src\rejuvenation-factory.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-printer.ads","subtype":"AdaSpecification│1 │
│File","name":"file:src\rejuvenation-printer.ads","fullyQualifiedName":│ │
│"src\rejuvenation-printer.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-node_locations.ads","subtype":"AdaSpecif│1 │
│icationFile","name":"file:src\rejuvenation-node_locations.ads","fullyQ│ │
│ualifiedName":"src\rejuvenation-node_locations.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-file_utils.ads","subtype":"AdaSpecificat│1 │
│ionFile","name":"file:src\rejuvenation-file_utils.ads","fullyQualified│ │
│Name":"src\rejuvenation-file_utils.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-navigation.adb","subtype":"AdaBodyFile",│1 │
│"name":"file:src\rejuvenation-navigation.adb","fullyQualifiedName":"sr│ │
│c\rejuvenation-navigation.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-replacer.ads","subtype":"AdaSpecificatio│1 │
│nFile","name":"file:src\rejuvenation-replacer.ads","fullyQualifiedName│ │
│":"src\rejuvenation-replacer.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-pretty_print.adb","subtype":"AdaBodyFile│1 │
│","name":"file:src\rejuvenation-pretty_print.adb","fullyQualifiedName"│ │
│:"src\rejuvenation-pretty_print.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-string_utils.adb","subtype":"AdaBodyFile│1 │
│","name":"file:src\rejuvenation-string_utils.adb","fullyQualifiedName"│ │
│:"src\rejuvenation-string_utils.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-indentation.ads","subtype":"AdaSpecifica│1 │
│tionFile","name":"file:src\rejuvenation-indentation.ads","fullyQualifi│ │
│edName":"src\rejuvenation-indentation.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-printer.adb","subtype":"AdaBodyFile","na│1 │
│me":"file:src\rejuvenation-printer.adb","fullyQualifiedName":"src\reju│ │
│venation-printer.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-simple_factory.adb","subtype":"AdaBodyFi│1 │
│le","name":"file:src\rejuvenation-simple_factory.adb","fullyQualifiedN│ │
│ame":"src\rejuvenation-simple_factory.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-nested.ads","subtype":"AdaSpecificationF│1 │
│ile","name":"file:src\rejuvenation-nested.ads","type":"File","fullyQua│ │
│lifiedName":"src\rejuvenation-nested.ads"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-file_utils.adb","subtype":"AdaBodyFile",│1 │
│"name":"file:src\rejuvenation-file_utils.adb","fullyQualifiedName":"sr│ │
│c\rejuvenation-file_utils.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-text_rewrites.ads","subtype":"AdaSpecifi│1 │
│cationFile","name":"file:src\rejuvenation-text_rewrites.ads","fullyQua│ │
│lifiedName":"src\rejuvenation-text_rewrites.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-patterns.ads","subtype":"AdaSpecificatio│1 │
│nFile","name":"file:src\rejuvenation-patterns.ads","fullyQualifiedName│ │
│":"src\rejuvenation-patterns.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-pretty_print.ads","subtype":"AdaSpecific│1 │
│ationFile","name":"file:src\rejuvenation-pretty_print.ads","fullyQuali│ │
│fiedName":"src\rejuvenation-pretty_print.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-string_utils.ads","subtype":"AdaSpecific│1 │
│ationFile","name":"file:src\rejuvenation-string_utils.ads","fullyQuali│ │
│fiedName":"src\rejuvenation-string_utils.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-simple_factory.ads","subtype":"AdaSpecif│1 │
│icationFile","name":"file:src\rejuvenation-simple_factory.ads","fullyQ│ │
│ualifiedName":"src\rejuvenation-simple_factory.ads","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-text_rewrites.adb","subtype":"AdaBodyFil│1 │
│e","name":"file:src\rejuvenation-text_rewrites.adb","fullyQualifiedNam│ │
│e":"src\rejuvenation-text_rewrites.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-nested.adb","subtype":"AdaBodyFile","nam│1 │
│e":"file:src\rejuvenation-nested.adb","type":"File","fullyQualifiedNam│ │
│e":"src\rejuvenation-nested.adb"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-indentation.adb","subtype":"AdaBodyFile"│1 │
│,"name":"file:src\rejuvenation-indentation.adb","fullyQualifiedName":"│ │
│src\rejuvenation-indentation.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-node_locations.adb","subtype":"AdaBodyFi│1 │
│le","name":"file:src\rejuvenation-node_locations.adb","fullyQualifiedN│ │
│ame":"src\rejuvenation-node_locations.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation-parameters.adb","subtype":"AdaBodyFile",│1 │
│"name":"file:src\rejuvenation-parameters.adb","fullyQualifiedName":"sr│ │
│c\rejuvenation-parameters.adb","type":"File"} │ │
├──────────────────────────────────────────────────────────────────────┼─────────────┤
│{"relativeName":"rejuvenation.ads","subtype":"AdaSpecificationFile","n│1 │
│ame":"file:src\rejuvenation.ads","fullyQualifiedName":"src\rejuvenatio│ │
│n.ads","type":"File"} │ │
└──────────────────────────────────────────────────────────────────────┴─────────────┘
Should the instances with only one reference (hence only include the "Rejuvenation" package, yet use none of its declarations)
remain part of the rejuvenation inheritance hierarchy?
Especially, file utils and string utils are NOT specific for rejuvenation!