úÎ&i$?)      !"#$%&'(None!"&'(2468=HJKM edges is a list of types with kind EdgeKind, while  nearLoops< is a map of the nodes transitively reachable by each node.0Update the exclusion map with the new edge: the from key gets to& added, likewise with keys that have from= in it's value list. We need to track if the key exists yet.PAdd an explicit element to the head of a list, if the test is inside that list.ÌSimply reject anything that's been reached in the other direction. We expect an explicit type signature when uniqueness is needed, otherwise we will wait until invocation to see if the edges are unique. /Trivial inequality for non-reflexivity of edges  A simple Data.List.lookup function for type maps.  not . elem/ for lists of types, resulting in a constraint. ˆSome people just want to watch the world burn. Ideally, this shouldn't exist; poor error messages, and is very square peg - round hole. -We need this for type-level computation list.&We use promoted symbol values for the from and toU type parameters. This is the user-level data type when declaring the list of edges.Utility for constructing an  EdgeSchema granularly     None!"'(234=JKM-Trivial rose tree for creating spanning trees%Expects edges to already be type-safe*Auxilliary function normally defined in a where clause for manual folding.Add to as a child to every from node in the accumulator.We need to track if from3 has is a root node or not. TODO: Some code repeat.Adds c$ as a child of any tree with a root t. Assumes unique roots.Adds an empty c# tree to the list of trees uniquely"[Gives us a generic way to get our spanning trees of the graph, as a value. Credit goes to  kstackoverflow.com/questions/28030118/reflecting-heterogeneous-promoted-types-back-to-values-compositionally András Kovács. !"#$ !"#% $!$!$!$!$!$!$!$!$!$!"# "#$!None!"(:M%The graph may be not connected( A simple Data.Map.lookup duplicate.%&'()&  !"#%&'(%'&(%'&()*      !"#$%&'()*+,-. dag-0.0.2Data.Graph.DAG.Edge.UtilsData.Graph.DAG.EdgeData.Graph.DAGTreeNodeEquals_1627428531 EdgeSchemaEConsENil DisallowIn PrependIfElem Acceptable=/=Lookup Excluding DeducibleEdgeKindEdgeType EdgeValueEdgeunique notUnique"$fAcceptableEdgeTypeexcludeMapTrue#$fAcceptableEdgeTypeexcludeMapFalse SpanningTreesSpanningTrees'AddEdgeAddEdge' AddChildToAppendIfNotElemTreesSTreeNodeSym0NodeSym0KindInferenceNodeSym1NodeSym1KindInferenceNodeSym2SNodereflectgetSpanningTreesTFCo:R:DemoteRepTreeKProxyDAGGConsGNilglookup $fFunctorDAG