Here we have the following code:
rootMetas = if not save then Set.empty else metasIn ( bs , sig ^. sigSections , sig ^. sigRewriteRules , HMap.filterWithKey (\x _ -> Set.member x rootNames) disp )
If we don't have --save-metas
, then none of bs
, sigRewriteRules
and disp
are instantiated and traversed for reachability. Hence, the metas which only occur in these will be eliminated, and should become dangling in the interface. As I see now, the only way this could work correctly in practice is if the mentioned things are already fully instantiated (which may well be the case in the current codebase).
Also, sigSections
looks puzzling in rootMetas
. The public sections are already traversed for reachability, in reachableFrom
. This leaves the non-public sections here as additionally traversed, but I don't understand why the metas there should be roots.
Could I perhaps get a clear specification of live/dead things?
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4