Block Let MAP (SEARCH.MAP Z.compare Func {{key _}} key) In Let G (GRAPH.G MAP) Let g (LIST.reduce [Right {0 [Right 3 & 1 & 'nil]} & {1 [Right 2 & 0 & 5 & 'nil]} & {2 [Right 3 & 'nil]} & {3 [Right 2 & 4 & 'nil]} & 'nil] MAP.empty MAP.insert) In (LIST.for_each (G.strongly_connected_components g) Func {c} (STDIO.print_line (STRING.join " " (LIST.map c Z.show)))) Where Let GRAPH Package "graph" Let LIST Package "list" Let SEARCH Package "search" Let STDIO Package "stdio" Let STRING Package "string" Let Z Package "z"