úÎ$Z ë&      !"#$%None+Map the first function over internal nodes ! and the second one over leaves. &GTODO: Use lazy text builder to avoid slowness in the pessimistic case. Parse the enamex forest. Parse the enamex file. '()*+,-./& '()*+,-./& Safe-Inferred An - is the atomic label with additional marker. Inside marker Beginning marker A  consists of a list of atomic  labels. An 8 data structure consists of a word with a corresponding  compound label. 'Encode the forest with the IOB method. 0&Encode the tree using the IOB method. (Decode the forest using the IOB method. 10Take iob elements as long as the top label doesn' t change. 5 Return obtained part together with the rest of iob.  234567 0 1     234567 0 1 Safe-Inferred Spanning of a tree. Map function over tree leaves. 'Map function over tree internal nodes. -Map function over each tree from the forest. Make span for a leaf node. +Minimum span overlapping both input spans. &Set of positions covered by the span. %Get span of the span-annotated tree. :Annotate tree nodes with spanning info given the function ' which assignes indices to leaf nodes. *Annotate forest nodes with spanning info. 'Remove span annotations from the tree. )Remove span annotations from the forest. -Sort the tree with respect to spanning info. /Sort the forest with respect to spanning info.      Safe-Inferred8%A stateful monad for forest pruning. A graph over a sentence. "1Make a graph given the bounds and list of edges. #3Get keys of adjacent nodes for the given node key. $5Return all graph roots (i.e. nodes with no parents). 94Combine the disjoint forest with the list of words. 0 Discontinuities will be patched with no trace. %>Transform graph into a disjoint forest, i.e. with no mutually  overlapping trees. 8:; !"#$<=9%>?@AB !"#$% !"#$%8:; !"#$<=9%>?@ABC       !!"#$%&'()*+,-./0123456789:;:<=>?@ABCDdata-named-0.3.0Text.Named.EnamexData.Named.IOBData.Named.TreeData.Named.GraphmapTwo parseForest parseEnamexAtomIBLabelIOBwordlabel encodeForest decodeForestSpanbegend mapLeavesmapNodesmapTreesleafSpan<>spanSetspanspanTree spanForest unSpanTree unSpanForestsortTree sortForestGraphboundsedgeMapmkGraphedgesrootstoForestunEscapeForestTreepForestpTreepLeafpNodepOpenTag pCloseTagpWord encodeTree followToppushpopMaybetopMaybepoprawisIRanMaddWordsrunRanMgeneratepruneruncontainsincludechop $fMonadRanM