!Q JO      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNSafe"#  data-namedA directed acyclic graph. data-namedThe underlying graph. data-named,Map vertex identifier to a node description. data-namedYMap key to a vertex identifier. Return Nothing if the key is not a member of the graph. data-namedUThe node for the given key. Return Nothing if the key is not a member of the graph. data-namedZThe edge list for the given key. Return Nothing if the key is not a member of the graph. data-namedWMap key to a vertex identifier. Report error if the key is not a member of the graph. data-namedSThe node for the given key. Report error if the key is not a member of the graph.  data-namedXThe edge list for the given key. Report error if the key is not a member of the graph. data-namedSmart constructur which verifies that the graph is actually a DAG. Return Nothing if the input list constitutes a graph with cycles.  data-named;Spanning forest of the DAG. Non-overloaded version of the  function. The comparison function is used to sort the list of leaves and the spanning tree is computed with respect to the resulting order. data-named.Spanning forest of the DAG using the standard OJ function to compare keys kept in DAG leaves. Overloaded version of the  function.    Safe. data-namedSpanning of a tree. data-named@A forest with a values in internal nodes and b values in leaves. data-named>A tree with a values in internal nodes and b values in leaves. data-named!Map function over the leaf value. data-named*Map function over the internal node value. data-namedTMap the first function over internal node value and the second one over leaf value. data-named0Map one function over both node and leaf values. data-named,Map function over each tree from the forest. data-namedMap function over the tree. data-named9Group leaves with respect to the given equality function.  data-named9Group leaves with respect to the given equality function.! data-named9Group leaves with respect to the given equality function." data-named9Group leaves with respect to the given equality function.# data-namedMake span for a leaf node.$ data-named*Minimum span overlapping both input spans.% data-named%Set of positions covered by the span.& data-named$Get span of the span-annotated tree.' data-named`Annotate tree nodes with spanning info given the function which assignes indices to leaf nodes.( data-named)Annotate forest nodes with spanning info.) data-named&Remove span annotations from the tree.* data-named(Remove span annotations from the forest.+ data-named,Sort the tree with respect to spanning info., data-named.Sort the forest with respect to spanning info.*PQRSTUVWXYZ[\]^_ !"#$%&'()*+,#$%&'()*+, !"Safe47 0 data-namedAn 0, is the atomic label with additional marker.1 data-namedBeginning marker2 data-namedInside marker 3 data-namedA 3 consists of a list of atomic 0 labels.4 data-namedAn 4H data structure consists of a word with a corresponding compound label.8 data-named&Encode the forest with the IOB method.` data-named%Encode the tree using the IOB method.9 data-named'Decode the forest using the IOB method.a data-namedqTake iob elements as long as the top label doesn't change. Return obtained part together with the rest of iob. 0213457689 4576302189Safe14Ab data-named$A stateful monad for forest pruning.@ data-namedA graph over a sentence.D data-named0Make a graph given the bounds and list of edges.E data-named2Get keys of adjacent nodes for the given node key.F data-named4Return all graph roots (i.e. nodes with no parents).c data-namedcCombine the disjoint forest with the list of words. Discontinuities will be patched with no trace.G data-namedTransform a graph into a disjoint forest, i.e. a forest with no mutually overlapping trees. The process is lossy, discontinuity and overlapping cannot be represented with the  data type.@ABCDEFG@ABCDEFGSafeBdefghijkSafeJl data-namedFTODO: Use lazy text builder to avoid slowness in the pessimistic case.m data-namedFTODO: Use lazy text builder to avoid slowness in the pessimistic case.K data-namedParse the enamex forest.L data-namedParse the enamex file.n data-named_Function which determines between which two tag elements a space character should be inserted.o data-namedpWe define our own groupBy because the standard version from Data.List assumes that the predicate is transitive.M data-namedShow the forest.N data-namedShow the enamex file.KLMNKLMNp      !"#$%&'()*+,-./01234567899:;<=>?@ABCDDEFGHIJKLMNOPQRSTRSURSVRSWRSXRSYRSZRS[RS\RS]RS^RS_RS`RSaRSbRScdefghijklmnopqrst'data-named-0.6.2-FJFcovhY6W3H6RhXFDpIGjData.Named.DAGData.Named.TreeData.Named.IOBData.Named.GraphText.Named.EnamexPaths_data_namedDAGgraphnodeDesc maybeVertex maybeNode maybeEdgesvertexnodeedgesnodeVkeyVedgesVleavesrootsmkDAGunDAG toForestBytoForestSpanbegendNeForestNeTreeonLeafonNodeonEitheronBoth mapForestmapTreegroupForestLeavesgroupTreeLeavesconcatForestLeavesconcatTreeLeavesleafSpan<>spanSetspanspanTree spanForest unSpanTree unSpanForestsortTree sortForest $fShowSpan$fEqSpan $fOrdSpanAtomBILabelIOBwordlabel encodeForest decodeForest $fBinaryAtom $fShowAtom$fEqAtom $fOrdAtom $fFunctorAtom $fShowIOBGraphboundsedgeMapmkGraph $fMonadRanM$fApplicativeRanM $fFunctorRanM parseForest parseEnamex showForest showEnamexghc-prim GHC.Classescomparecontainers-0.6.0.1 Data.TreeunfoldForestM_BFunfoldTreeM_BF unfoldForestM unfoldTreeM unfoldForest unfoldTreefoldTreelevelsflatten drawForestdrawTreeTreeNode rootLabel subForestForest encodeTree followTopRanMaddWordsversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameunEscapeescapenoSpacegroupBy