------------------------------------------------------------------------- -- View selection ------------------------------------------------------------------------- %%[1 ag ATTR AGViewSelsItf AGViewSelItf AllViewSel [ | | vwSelNmS USE {`Set.union`} {Set.empty}: {Set.Set Nm} ] SEM ViewSel | View Renamed lhs . vwSelNmS = Set.singleton @nm | All lhs . vwSelNmS = dgVertices @lhs.vwDpdGr | Range lhs . vwSelNmS = let toS = Set.fold (\n r -> dgReachableFrom @lhs.vwDpdGr n `Set.union` r) Set.empty @vwTo.vwSelNmS frSL = [ dgReachableTo @lhs.vwDpdGr n | n <- Set.toList @vwFr.vwSelNmS ] in Set.filter (\n -> any (\s -> n `Set.member` s) frSL) toS %%]