h$>c3       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                         Safe-Inferred   uni-graphsFind a cycle in a graph. We are given a list of nodes to start from, and a successor function.  !Basic Interface for Graph DisplayNone >@ uni-graphsThe graph implementation will provide a value of this type to get you started. For example, for daVinci this is called  daVinciSort5. However you then need to use it as an argument to B to construct the actual graph.B uni-graphsConstruct a new graph. The input value will be something like  DaVinciGraph 's value  daVinciSort(; the resulting graph will be returned.C uni-graphsRedraw the graph. This is needed when you want to show updates.D uni-graphsTake over all interaction on the graph, and perform the given action, supplying it with an event which is activated when the user double-clicks a node. This is helpful when you need an interaction selecting several nodes.E uni-graphsconstruct a new node.F uni-graphsset a node's typeG uni-graphs delete a nodeI uni-graphs$get the value associated with a nodeJ uni-graphs%set the value associated with a node.K uni-graphsconstruct a node type.L uni-graphsconstruct a new arc.M uni-graphsGiven a node, construct a  which can be used as a way of drawing ordered sets of out-arcs from that node. (NB. At the moment daVinci does not do this properly, but that is daVinci's fault, not mine.)N uni-graphs delete an arcO uni-graphs$set the value associated with an arcQ uni-graphs$get the value associated with an arcR uni-graphscreate a new arc type  !"#$%&'(,)*+-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR@ABCD>?EFGHIJK;<=LMNOPQR789: 5634120-./(,)*+&'%$"#! $Extended Interface for Graph DisplayNone>?$a uni-graphsFunction to be applied to all user actions. This is useful for exception wrappers and so on.c uni-graphsWhich way up the graph is.We copy the DaVinciTypes constructors, though of course this will mean we have to painfully convert one to the other.j uni-graphsThe following options are provided specially by DaVinci (see, for now,  http://www.informatik.uni-bremen.de/daVinci/old/docs/reference/api/api_app_menu_cmd.html* for the daVinci2.1 documentation. If a h is used as a configuration with a specified action, the corresponding option is enabled in the daVinci File menu, and the action is performed when the option is selected.The r configuration and p both set the action to be taken when the user selects a close event, and each overrides the other.By default the Close and Print options are enabled, however these and other options can be disabled by specifing ( as the second argument to FileMenuAct.r uni-graphsIf set, action which is invoked if the user attempts to close the window. If the action returns True, we close it.WARNING. This action is performed in the middle of the event loop, so please don't attempt to do any further graph interactions during it. (But HTk interactions should be fine.)t uni-graphs'If True, allow Drag-and-Drop operators.v uni-graphsIf True, add a survey view of the graph; IE display a picture of the whole graph which fits onto the screen (without displaying everything) as well as a picture of the details (which may not fit onto the screen).3(The user can do this anyway from daVinci's menus.)x uni-graphsIf , try hard to optimise the layout of the graph on redrawing it.z uni-graphs Compute a | which dynamically changes.| uni-graphs6The font in which the label of this node is displayed. uni-graphs Compute a  which dynamically changes. uni-graphsThe border of this node uni-graphs.If True, arcs from the node are not displayed. uni-graphsThe user is responsible for making sure this String is properly formatted. To quote from the daVinci documentation:  With this attribute you can control the shape of the edge's arrows. The possible values are: "farrow" (default), "arrow", "fcircle", and "circle", where a leading 'f' means filled. uni-graphsThe user is responsible for making sure this String is properly formatted. To quote from the daVinci documentation:  This attribute is used to control the arrow of an edge. In a graph visualization, each edge usually has an arrow pointing to the child node. This attribute can be used to let the arrow be drawn inverse (i.e. pointing to the parent), to get an arrow at both sides of an edge or to suppress arrows for a particular edge. The supported attribute values are: "last" (1 arrow pointing to the child, default), \"first\" (1 arrow to the parent), "both" (2 arrows to the parent and to children) and "none" (no arrows). uni-graphsThe pattern of an edge uni-graphsThe user is responsible for making sure this String is properly formatted. To quote from the daVinci documentation: Can be used to define the background color of a node. The value of this attribute may be any X-Window colorname (see file lib/rgb.txt in your X11 directory) or any RGB color specification in a format like "#0f331e", where 0f is the hexadecimal value for the red part of the color, 33 is the green part and 1e is the blue. Hence, a pallet of 16.7 million colors is supported. The default color for nodes is "white".There is a function for constructing "RGB color specification"s in Colour. uni-graphsThis datatype is based on DaVinciClasses4, including several name clashes. However we omit Textual, add the file argument to  and the shape  . This datatype may get bigger! uni-graphs&uNone&  None3>?&66None' None( uni-graphs4function to compute node label in new graph and type uni-graphs3function to compute arc label in new graph and type uni-graphsupdates prepended to initialse types. (The type declarations in the input graph are discarded) None) uni-graphs>Returns True if first node is ancestor or equal to the second. uni-graphs>Returns True if first node is ancestor or equal to the second. None* None?*? None>+ uni-graphsnode given with their parent nodes. The parents should always come before their children in the list. uni-graphs*add a node with given parent arcs from it. uni-graphsNB. The graph will end up ill-formed if you delete a node which has parent arcs pointing to it.None,None- uni-graphsRemove "hidden" vertices as far as possible from a graph, which must be acyclic, while still preserving the structure as far as possible. uni-graphs/This function returns True if a node is hidden. uni-graphsIn the returned graph, we use  to indicate the arcs which don't correspond to arcs in the original graph.None-None/ uni-graphsTakes a graph G and a list of nodes N and computes N' = { n in N | there does not exist an m in N and a non-trivial path n -> m }. uni-graphsGeneral removeAncestors function, which takes as argument the action computing a Node's successors. uni-graphsPure version of .None/< Safe-Inferred/~ Safe-Inferred1 uni-graphsGet all nodes in the graph uni-graphs(If the node does not exist in the graph  . Otherwise  key where key is a "nodeKey", an ordered key uniquely distinguishing the node (and used to detect common elements in the two graphs) uni-graphsIf node does not exist Nothing, otherwise immediate parents of node.None2 uni-graphs/Change the nodeInfo of something already added. uni-graphsChange the hidden function uni-graphsGet the input graph in the form of FindCommonParents.GraphBack. NB. (1) the confusion in the type variable "nodeKey" as used in FindCommonParents is not the same as our "nodeKey". (2) we get a snapshot of the state of the input graph at a particular time   !"#$%&'()*+,-./01234456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYYZ[\]^_`abcdefghijklmnopqrstuvwxyyz{|}~;FA+705YZc]jd                                          _              )uni-graphs-2.2.1.2-82GEirxOMJIIDUQeUJy8ggGraphs.GraphConfigureGraphs.FindCycleGraphs.GraphDispGraphs.GetAttributesGraphs.EmptyGraphSortGraphs.NewNames Graphs.GraphGraphs.GraphOpsGraphs.GraphConnectionGraphs.GetAncestorsGraphs.DisplayGraphGraphs.GraphEditorGraphs.PureGraphGraphs.PureGraphMakeConsistentGraphs.PureGraphPruneGraphs.PureGraphToGraphGraphs.RemoveAncestorsGraphs.SimpleGraphGraphs.TopSortGraphs.FindCommonParentsGraphs.VersionDag'uni-util-2.3.0.3-9osqM81fKRM2uZs6YnueRoUtil.Computation configUsed$$ HasConfig&uni-htk-2.2.1.3-8Ii3wGPczpqAQBPz3MD5O0HTk.Toolkit.MenuType mapMMenuPrim' mapMMenuPrim mapMenuPrim' mapMenuPrimBlankMenuButtonMenuPrim findCycleOrd1compare1Eq1eq1 ArcTypeConfig NewArcTypenewArcTypePrim ArcTypeClassinvisibleArcTypeArcClass DeleteArc deleteArcPrimsetArcValuePrimgetArcValuePrim WrappedNode SetArcTypesetArcTypePrimNewArc newArcPrimnewArcListDrawerPrimNodeTypeConfig NewNodeTypenewNodeTypePrim NodeTypeClass NodeClass SetNodeFocussetNodeFocusPrim DeleteNodedeleteNodePrimgetNodeValuePrimsetNodeValuePrimgetMultipleNodesPrimNewNode newNodePrimsetNodeTypePrim GraphConfigNewGraph newGraphPrim GraphClass redrawPrimGraphAll displaySort ArcTypeParmsemptyArcTypeParmsinvisibleArcTypeParmscoMapArcTypeParms NodeTypeParmsemptyNodeTypeParmscoMapNodeTypeParms GraphParmsemptyGraphParmsGraphnewGraphredrawgetMultipleNodesnewNode setNodeType deleteNode setNodeFocus getNodeValue setNodeValue newNodeTypenewArcnewArcListDrawer deleteArc setArcValue setArcType getArcValue newArcType$fKind1takesParm$fKind2takesParms$fKind3takesParms$fGraphAllgraphgraphParmsnodenodeTypenodeTypeParmsarcarcTypearcTypeParms$fHasDelayerGraph$fDestructibleGraph$fDestroyableGraph $fEqGraph $fOrdGraphGraphAllConfigHasArcTypeConfigsHasNodeModifiesHasNodeTypeConfigsHasGraphConfigs ActionWrapper OrientationTopDownBottomUp LeftRight RightLeft FileMenuActFileMenuOption NewMenuOptionOpenMenuOptionSaveMenuOptionSaveAsMenuOptionPrintMenuOptionCloseMenuOptionExitMenuOption AllowClose AllowDragging SurveyViewOptimiseLayoutFontStyleSource FontStyleNormalFontStyle BoldFontStyleItalicFontStyleBoldItalicFontStyle BorderSourceBorderNoBorder SingleBorder DoubleBorderNodeArcsHidden ModifyHasDefdefisDefHeadEdgeDirDir EdgePatternSolidDottedDashedThickDoubleColorShapeBoxCircleEllipseRhombusTriangleIconDoubleClickActionNodeDragAndDrop NodeGesture GraphGestureValueTitleSource ValueTitle GraphTitle LocalMenu GlobalMenuHasModifyValuemodifyHasConfigValue$$$ configUsed'$$$?combineGlobalMenusdefaultAllowClose$fGraphConfigDelayer$fHasConfigoptionconfiguration $fHasModifyValueMaybegraphobject$fGraphConfigGlobalMenu$fHasCoMapIOLocalMenu$fArcTypeConfigLocalMenu$fNodeTypeConfigLocalMenu$fGraphConfigSimpleSource$fGraphConfigGraphTitle$fHasCoMapIOValueTitle$fArcTypeConfigValueTitle$fNodeTypeConfigValueTitle $fNodeTypeConfigValueTitleSource$fGraphConfigGraphGesture$fHasCoMapIONodeGesture$fNodeTypeConfigNodeGesture$fNodeTypeConfigNodeDragAndDrop $fArcTypeConfigDoubleClickAction!$fNodeTypeConfigDoubleClickAction$fNodeTypeConfigShape$fArcTypeConfigColor$fNodeTypeConfigColor$fArcTypeConfigEdgePattern$fArcTypeConfigEdgeDir$fArcTypeConfigHead$fModifyHasDefNodeArcsHidden$fNodeTypeConfigBorderSource$fNodeTypeConfigFontStyleSource$fGraphConfigOptimiseLayout$fGraphConfigSurveyView$fGraphConfigAllowDragging$fGraphConfigAllowClose$fGraphConfigFileMenuAct$fGraphConfigOrientation$fGraphConfigActionWrapper$fHasGraphConfigsgraphParms!$fHasNodeTypeConfigsnodeTypeParms$fHasNodeModifiesgraphnode$fHasArcTypeConfigsarcTypeParms$fGraphAllConfiggraphgraphParmsnodenodeTypenodeTypeParmsarcarcTypearcTypeParms$fOrdFileMenuOption$fEqFileMenuOption $fEqFontStyle $fReadHead $fShowHead $fReadEdgeDir $fShowEdgeDir$fReadEdgePattern$fShowEdgePattern $fReadColor $fShowColor $fReadShape $fShowShape ArcAttributesarcTypeArcTypeAttributes arcTypeTitleNodeAttributesnodeType nodeTitleNodeTypeAttributesshape nodeTypeTitlegetNodeTypeAttributesgetNodeAttributesgetArcTypeAttributesgetArcAttributes displayError$fGUIValueShapeSort$fReadArcAttributes$fShowArcAttributes$fReadArcTypeAttributes$fShowArcTypeAttributes$fShowNodePreAttributes$fReadNodeAttributes$fShowNodeAttributes$fReadNodeTypeAttributes$fShowNodeTypeAttributes$fEnumShapeSort$fReadShapeSort$fShowShapeSortemptyGraphSort$fGraphClassEmptyGraph$fHasDelayerEmptyGraph$fDestructibleEmptyGraph$fDestroyableEmptyGraph$fOrdEmptyGraph$fEqEmptyGraph%$fHasConfiggraphConfigEmptyGraphParms$fGraphParmsEmptyGraphParms#$fNewGraphEmptyGraphEmptyGraphParms1$fHasModifyValueNodeArcsHiddenEmptyGraphEmptyNode)$fHasModifyValueBorderEmptyGraphEmptyNode,$fHasModifyValueFontStyleEmptyGraphEmptyNode!$fSetNodeFocusEmptyGraphEmptyNode$fDeleteNodeEmptyGraphEmptyNode$fNodeClassEmptyNode$fOrd1EmptyNode$fEq1EmptyNode)$fNewNodeEmptyGraphEmptyNodeEmptyNodeType$fNodeTypeClassEmptyNodeType0$fHasConfigValuenodeTypeConfigEmptyNodeTypeParms6$fNewNodeTypeEmptyGraphEmptyNodeTypeEmptyNodeTypeParms!$fNodeTypeParmsEmptyNodeTypeParms$fDeleteArcEmptyGraphEmptyArc$fArcClassEmptyArc$fOrd1EmptyArc $fEq1EmptyArc*$fSetArcTypeEmptyGraphEmptyArcEmptyArcType8$fNewArcEmptyGraphEmptyNodeEmptyNodeEmptyArcEmptyArcType$fArcTypeClassEmptyArcType$fOrd1EmptyArcType$fEq1EmptyArcType.$fHasConfigValuearcTypeConfigEmptyArcTypeParms3$fNewArcTypeEmptyGraphEmptyArcTypeEmptyArcTypeParms$fArcTypeParmsEmptyArcTypeParms$fGraphAllConfigEmptyGraphEmptyGraphParmsEmptyNodeEmptyNodeTypeEmptyNodeTypeParmsEmptyArcEmptyArcTypeEmptyArcTypeParmsFrozenNameSourceNameSourceBranch NameSourcebranch useBranch initialBranch getNewNamefreezeNameSourcedefrostNameSource$fReadFrozenNameSource$fShowFrozenNameSource$fReadNameSourceBranch$fShowNameSourceBranch CannedGraphupdates PartialShowUpdateSetNodeTypeLabel SetNodeLabel SetNodeTypeSetArcTypeLabel SetArcLabel MultiUpdateArcTypeArcNodeTypeNodeGraphConnectionData graphState deRegister graphUpdatenameSourceBranchGraphConnectiongetNodesgetArcs getNodeTypes getArcTypes getArcsOut getArcsIn getNodeLabel getNodeTypegetNodeTypeLabel getSource getTarget getArcLabel getArcTypegetArcTypeLabel shareGraphupdate newEmptyGraph firstNode $fReadNode $fShowNode$fStringClassNode$fReadNodeType$fShowNodeType$fStringClassNodeType $fReadArc $fShowArc$fStringClassArc $fReadArcType $fShowArcType$fStringClassArcType$fShowPartialShow$fShowPartialShow0$fShowPartialShow1$fReadCannedGraph$fShowCannedGraph $fReadUpdate $fShowUpdate $fEqArcType $fOrdArcType$fEqArc$fOrdArc $fEqNodeType $fOrdNodeType$fEqNode $fOrdNode isAncestor isAncestorBySubGraphnodeIn nodeTypeInattachSuperGraphattachSubGraphmapGraphConnection getAncestorsgetDescendantsgetAncestorsGenericisAncestorPuregetAncestorsPure DisplayGraph displayGraph displayGraph0 displayGraph1$fDestructibleDisplayGraph$fDestroyableDisplayGraph$fObjectDisplayGraph GraphEditorDisplayableCannedGraphDisplayableGraphConnectionDisplayableUpdate DisplayablenewGraphEditor$fDestructibleGraphEditor$fDestroyableGraphEditor$fObjectGraphEditorArcDataarcInfotargetNodeDataparents PureGraph nodeDataFMemptyPureGraphaddNode toAllNodes toNodeParents nodeExists mapArcInfo parentNodes$fShowPureGraph$fShowNodeData $fEqNodeData $fOrdNodeData $fShowArcData $fEqArcData $fOrdArcDatapureGraphMakeConsistentpureGraphPrunepureGraphToGraphremoveAncestorsremoveAncestorsByremoveAncestorsByPure ClientDataclientID clientSink SimpleGraph getNameSource delayedAction$fEqClientData$fDestroyableSimpleGraph$fGraphSimpleGraph$fObjectSimpleGraph$fSynchronizedSimpleGraphtopSorttopSort1 GraphBack getAllNodesgetKey getParentsfindCommonParents VersionDag newVersionDag addVersion addVersions deleteVersion setNodeInfochangeIsHidden nodeKeyExists lookupNodeKey getNodeInfostoDisplayedGraphgetInputGraphBack toInputGraphUtil.VariableList ListDrawerbase GHC.MaybeNothingghc-prim GHC.TypesTrue Util.DelayerDelayerJust