úÎ)O!İm      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklInternal data definition(c) Ivan Lazar MiljenovicMITIvan.Miljenovic@gmail.comNone &47>CFLAssumes n' is one of the end points of this edge. Returns a list of length 2.'Assumes all nodes are in the node list.(  !"#$%&'()*#  !"#$%(*)('   & !"#$%  !"#$%&'()*!Functions dealing with sub-graphs(c) Ivan Lazar MiljenovicMITIvan.Miljenovic@gmail.comNone7+,+,+,+,Graphs with Hashable nodes(c) Ivan Lazar MiljenovicMITIvan.Miljenovic@gmail.comNone&*-023457>FLMNumber of nodesNNumber of edgesOTAssumes the Contexts describe a graph in total, with the outermost one first (i.e. buildGr (c:cs) == c \ buildGr cs).XQNote that for any loops, the resultant edge will only appear once in the output = field.m#Note that for loops, the result of  will always be a ?.F-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgnopqrstuvmwT  !"-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgTJI DEFGABC >?@9:;<=H45678312/0LMQPWRSNTU V!"KO^_-\]`abc.XYZ[defg5-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgnopqrstuvmwGraph partitioning(c) Ivan Lazar MiljenovicMITIvan.Miljenovic@gmail.comNone&*47CFiwFind communities in weighted graphs using the algorithm by Blondel, Guillaume, Lambiotte and Lefebvre in their paper  http://arxiv.org/abs/0803.0476/Fast unfolding of communities in large networks.xyzh{|}~€‚iƒ„…†‡ˆ‰Š‹Œ‘hiihxyzh{|}~€‚iƒ„…†‡ˆ‰Š‹Œ‘Connected components(c) Ivan Lazar MiljenovicMITIvan.Miljenovic@gmail.comNonejOCalculate connected components of a graph; edge directionality doesn't matter.jkljkljkljkl’       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—unord_DYokrLCvT4B1ZIXTouPw83Data.Graph.UnorderedData.Graph.Unordered.Internal)Data.Graph.Unordered.Algorithms.Subgraphs*Data.Graph.Unordered.Algorithms.Clustering*Data.Graph.Unordered.Algorithms.ComponentsbaseData.Functor.Identity runIdentityIdentityNodeFromgetNodeEdgeTypeAdjTypemkEdgeotherNtoEdge edgeNodes edgeTriple ValidGraphAdjSetEdgeunEdgeEdgeMapNodeMapGraphGrnodeMapedgeMapnextEdgemkSetadjCountmkGraph nodeDetailslnodesedges edgeDetailsledges edgePairs ledgePairsdegNM withNodeMap withEdgeMap$fNodeFromIdentity $fNFDataGraph $fReadGraph $fShowGraph $fEqGraphsubgraph isSubGraphOf Mergeable Matchable ToContext toContext FromContext fromContext ValidContext ContextualCNodeCATypeCNLabelCELabelContextCtxtcNodecLabelcAdjDirAdjToNodeFromNode UndirEdgeUEueElemDirEdgeDEfromNodetoNode AdjLookup UndirGraphDirGraphemptyisEmptyordersizebuildGrninfohasNodenlab neighbourshasEdgeeinfoelabnodesmatchmatchAsmatchAny matchAnyAsmergemergeAsinsNodeinsEdgedelNodedelEdge delEdgeLabeldelEdgesBetweennmapnmapForemapemapFor EdgeMergeablebgll components getComponentgetComponentFrom$fEdgeTypeDirEdge$fFromContext(,,)$fContextual(,,)$fToContext(,,)$fFromContext(,,)0$fContextual(,,)0$fToContextContext$fFromContextContext$fContextualContext$fEdgeTypeUndirEdge$fNodeFromDirAdjStateL runStateL applyOppositeValidC CommunityCCGraphCGcomMapcGraphphaseOneinitCommunitiesmoveAlltryMovebestMovegetCdiffModularityphaseTwocompressEdgeMapmapAccumWithKeyL recurseUntil$fApplicativeStateL$fFunctorStateL$fEdgeMergeableUndirEdge$fEdgeMergeableDirEdge