h*,=      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                  !!!!!!""""""""############$$$$$$$$$%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((()*+++++++++++++++,1.2.0.17(c) 2016-2023 Dakotah LambertMIT Trustworthy'language-toolkit+Allow for overloading of the term alphabet.language-toolkitWrap a   type to sort in order of decreasing size. For elements of the same size, treat them normally.language-toolkitWrap a   type to sort in order of increasing size. For elements of the same size, treat them normally.language-toolkitA  is a ? that may contain more than one instance of any given element. language-toolkitThe   class is used for types that can be collapsed to a single value, like a fold over a list. Any structure c that is   must necessarily be  , since: collapse (:) [] cperforms a linearization. language-toolkitThe   class is used for types that can be traversed linearly in one direction. language-toolkitReturn the next element and the collection of remaining elements.language-toolkitThe  class is used for types that can contain objects and can be combined with , , and ' (relative complement). Instances of $ should satisfy the following laws: isIn == flip contains isNotIn == flip doesNotContain doesNotContain a == not . contains a contains a empty == False contains a (singleton b) == (a == b) contains a (insert b c) == (a == b) || contains a c contains a (union c1 c2) == contains a c1 || contains a c2 contains a (intersection c1 c2) == contains a c1 && contains a c2 intersection c c == c difference c c == emptylanguage-toolkit (union a b)6 returns a collection of elements that are in one of a or b , or both.language-toolkit(intersection a b)4 returns a collection of elements that are in both a and b.language-toolkit(difference a b)/ returns a collection of elements that are in a but not in b.language-toolkit(symmetricDifference a b)6 returns a collection of elements that are in one of a or b, but not both.language-toolkit(isSubsetOf y x) tells if x is a subset of y.language-toolkit(isSupersetOf y x) tells if x is a superset of y.language-toolkit(isProperSubsetOf y x) tells whether x is a proper subset of y.language-toolkit(isProperSupersetOf y x) tells whether x is a proper superset of y.language-toolkitLike  &, but discards the remaining elements. language-toolkitLike   , but discards the next element.!language-toolkitCombine two linearizable containers such that the elements of the first and second are inserted in an interleaving manner. For lists, this guarantees that a finite initial segment will contain elements from each, in contrast to the (++) operator."language-toolkit Analogue to isEmpty for Collapsible structures#language-toolkit#The size of the input as an integer$language-toolkitCombine s with .%language-toolkitCombine s with *. An empty source yields an empty result.&language-toolkit,True iff some element satisfies a predicate.'language-toolkit*True iff all elements satisfy a predicate.(language-toolkit:True iff the given object satisfies both given predicates.)language-toolkit%Appy a function to each element of a  .*language-toolkit4Retain only those elements that satisfy a predicate.+language-toolkit$Partition a Container. For example, 7groupBy (`mod` 3) [0..9] == [[0,3,6,9],[1,4,7],[2,5,8]],language-toolkitA fast + for  objects.-language-toolkit>A convenience function for the partition refinement operation..language-toolkitBuild a  from the elements of a  2. This can be used to cast between most types of . Time complexity is O(nci), where n+ is the number of elements in the source, c= is the cost of accessing a next element of the source, and i; is the cost of inserting an element into the destination./language-toolkit Analogous to :, returning the number of occurrences of an element in a . Time complexity is  O(\log{n}) , where n+ is the number of distinct elements in the .0language-toolkit/Every multiplicity that occurs in the multiset.1language-toolkitA specialization of . with time complexity O(n) , where n2 is the number of distinct elements in the source.2language-toolkitA specialization of ..3language-toolkitTranslate elements. All instances of elements of the search set are replaced by the corresponding elements of the replacement set in the given string. If the replacement set is smaller than the search set, it is made longer by repeating the last element.&tr "aeiou" "x" "colorless green ideas""cxlxrlxss grxxn xdxxs"tr "abcdefghijklmnopqrstuvwxyz" "nopqrstuvwxyzabcdefghijklm" "cat""png"4language-toolkitAll possible sequences over a given alphabet, generated in a breadth-first manner.5language-toolkitA fast method to extract elements from a set whose image under a monotonic function is a certain value. The precondition that the function is monotonic is not checked.6  #".$%!&'()*+,-/0215436  #".$%!&'()*+,-/021543(c) 2014-2024 Dakotah LambertMIT TrustworthyNOlanguage-toolkitThe edges of an Z.Tlanguage-toolkit+A vertex of the graph representation of an Z is a T, which can be labelled with any arbitrary value, so long as every vertex of a single automaton is labelled with a distinct value of the same type.Wlanguage-toolkitThe label of a O.Xlanguage-toolkit.The edge may be taken without consuming input.Ylanguage-toolkit(The edge requires consuming this symbol.Zlanguage-toolkitA finite-state automaton (FSA) is represented by a directed graph, the edges of which are labelled by formal symbols.\language-toolkitalanguage-toolkit'The collection of all states in an FSA.blanguage-toolkit:An automaton accepting every string over a given alphabet.clanguage-toolkit8An automaton accepting no strings over a given alphabet.dlanguage-toolkitA specialization of c% where the alphabet is itself empty.elanguage-toolkitAn automaton that accepts only the given string, over a given alphabet.flanguage-toolkitAn automaton that accepts only the given string, over the minimal alphabet required to represent this string.glanguage-toolkitRemove X from a   of W- and present the unwrapped results as a new .hlanguage-toolkit&True iff the input accepts no strings.ilanguage-toolkitIntersect all given automata, in parallel if possible. An empty intersection is undefined. In theory it should be the total language over the total alphabet, but the latter cannot be defined. Intermediate results are evaluated to normal form.jlanguage-toolkitUnion all given automata, in parallel if possible. An empty union is defined as the empty language over an empty alphabet. Intermediate results are evaluated to normal form.klanguage-toolkitShuffle all given automata, in parallel if possible. An empty shuffle is defined as the singleton language over an empty alphabet containing only the empty string. Intermediate results are evaluated to normal form.llanguage-toolkitInfiltrate all given automata, in parallel if possible. An empty infiltration is defined as the singleton language over an empty alphabet containing only the empty string. Intermediate results are evaluated to normal form.mlanguage-toolkitReturns whether the given Z= lands in a final state after processing the given sequence.language-toolkitAn optimized transition function for deterministic machines. The precondition, that the machine is deterministic, is not checked.nlanguage-toolkit!Return Just the longest sequence u5 of symbols such that every word in the language is uv for some v). If the language is empty, return None.olanguage-toolkit!Return Just the longest sequence v5 of symbols such that every word in the language is uv for some u). If the language is empty, return None.planguage-toolkitReturn an FSA representing possible continuations from a given sequence of symbols. If the input automaton is not complete then the output may have no states when given incompatible input.qlanguage-toolkitReturn an FSA representing possible continuations in the second language from strings in the first language. In other words,  quotLeft a b returns \{w : x\in a, xw\in b\}.rlanguage-toolkitReturn an FSA representing possible strings in the first language which end with a string in the second language. In other words,  quotRight a b is \{w : wx\in a, x\in b\}.slanguage-toolkit quotMid a b c is "\{wz : wx\in a, yx\in b, yz\in c\}. This lifts strings to a group, placing b-inverse between a and c. The time complexity of this function is abysmal, performing a left and a right quotient for each state in b.tlanguage-toolkit Returns an Z accepting all and only those strings accepted by the first input but rejected by the second.ulanguage-toolkit Returns an Z accepting all and only those strings not accepted by the input.vlanguage-toolkit Returns the u of a deterministic Z. The precondition that the input is deterministic is not checked.wlanguage-toolkit (residue a b) is equivalent to (difference a b). In the context of an approximation and its source, represents the strings accepted by the approximation that should not be.xlanguage-toolkit(coresidue a b) is equivalent to (complement (residue a b)). In the context of an approximation and its source, represents unmet constraints of the source.ylanguage-toolkit6Returns the shuffle product of its two input autamata.zlanguage-toolkit;Returns the infiltration product of its two input autamata.{language-toolkit Given an FSA representing an event x$ and another representing an event y, returns the FSA7 accepting all and only those strings that begin with x and end with y such that the beginning of y, lies strictly later than the beginning of x yet no later than the end of x.|language-toolkitThe Kleene Closure of an automaton is the free monoid under concatenation generated by all strings in the automaton's represented stringset. The resulting automaton is nondeterministic.}language-toolkitReturns a deterministic Z recognizing the same stringset as the input, with a minimal number of states.~language-toolkitReturns a deterministic Z recognizing the same stringset as the input, with a minimal number of states. The precondition that the input is deterministic is not checked.language-toolkit(Returns a non-necessarily deterministic Z minimized over a given relation. Some, but not all, relations do guarantee deterministic output. The precondition that the input is deterministic is not checked.language-toolkit Two strings u and v% are equivalent iff for all strings w, uw and vw/ lead to states in the same equivalence class.language-toolkit4The input automaton with unreachable states removed.language-toolkitThe reversal of an automaton accepts the reversals of all strings accepted by the original.language-toolkitReturns a normal form of the input. An FSA is in normal form if it is minimal and deterministic, and contains neither unreachable states nor nonaccepting sinks. Node labels are irrelevant, so & is used as a default representation.language-toolkit-Given an automaton whose syntactic monoid is M, two strings u and v are equivalent iff MuM=MvMlanguage-toolkitThe primitive left ideal.language-toolkitThe generalized \delta4 function, follow each symbol in a string in order.language-toolkitThe primitive right ideal.language-toolkitThe primitive two-sided ideal.language-toolkitAn automaton is considered trivial under some equivalence relation if each of its equivalence classes is singleton.language-toolkit-Given an automaton whose syntactic monoid is M, two strings u and v are equivalent if Mu=Mv and uM=vM.language-toolkitReturns a deterministic automaton representing the same stringset as the potentially nondeterministic input.language-toolkitGiven an automaton M with stateset Q, the powerset graph of M3 is an automaton with stateset in the powerset of Q. From a node \{q_1,q_2,\ldots,q_n\}, there is an edge labelled \sigma that leads to \{\delta(q_1,\sigma), \delta(q_2,\sigma), \ldots, \delta(q_n, \sigma)\} , where \delta is the transition function of the input. The initial state is Q, and the result is complete.language-toolkitGiven an automaton M with stateset Q, the syntactic monoid of M# is an automaton with stateset in (Q\rightarrow Q)9. Here these functions are represented by lists, where q_i maps to the  i^\text{th}# element of the list. From a node !\langle q_1,q_2,\ldots,q_n\rangle, there is an edge labelled \sigma that leads to \langle\delta(q_1,\sigma), \delta(q_2,\sigma), \ldots, \delta(q_n, \sigma)\rangle , where \delta is the transition function of the input. The initial state is the identity function, and the result is complete.language-toolkitConsider each alphabetic symbol as a function from state to state. The semigroup generated by these functions is the transformation semigroup of a deterministic automaton. Return the transition semigroup: this is syntactic if the automaton is minimal or shaped like the Cayley graph of its monoid.language-toolkitThe syntactic ordered semigroup is the syntactic semigroup alongside an order, where x\leq y if and only if whenever uyv6 maps the inital state to a final state, so too does uxv. Return the transition semigroup: this is syntactic if the automaton is minimal or shaped like the Cayley graph of its monoid.language-toolkitThe syntactic ordered monoid is the syntactic monoid alongside the same order as in the syntactic ordered semigroup. Return the transition monoid: this is syntactic if the automaton is minimal or shaped like the Cayley graph of its monoid.language-toolkitCreate a graph whose vertices are states of the given FSA and where a directed edge exists from p to q if and only if  p\mathcal{R}q under the given relation.language-toolkitReturn the set of states in the same strongly connected component as the given state.language-toolkitReturn a graph of the strongly connected components of the given FSA and the directed connections between them.language-toolkitAdd missing symbols to the alphabet of an automaton. The result is an automaton with at least the provided alphabet that licenses exactly the same set of strings as the input.language-toolkitAdd missing symbols to the alphabet of an automaton. As the symbol  is taken to represent any symbol not currently in the alphabet, new edges are added in parallel to existing edges labelled by .language-toolkitRemove the semantic > edges from an automaton and reflect this change in the type.language-toolkitAdd self-loops on all symbols to all edges to compute an upward closure.language-toolkitConvert a semantic automaton that represents a Local constraint into a new one that represents the same constraint in the associated Tier-Local class.language-toolkitAllow a given set of symbols to be freely inserted or deleted. In other words, make those symbols neutral.language-toolkit1Remove symbols from the alphabet of an automaton.language-toolkitIgnore the alphabet of an automaton and use a given alphabet instead.language-toolkitEquivalent to  f , where f$ is an arbitrary injective function.language-toolkitTransform the node labels of an automaton using a given function. If this function is not injective, the resulting FSA may not be deterministic even if the original was.language-toolkitTransform the node labels of an automaton using a given function. The precondition (that for all states x < y, f x < f y) is not checked.language-toolkitTransform the edge labels of an automaton using a given function. If this function is not injective, the resulting FSA may not be deterministic even if the original was.language-toolkitTransform the edge labels of an automaton using a given function. The precondition (that for all symbols x < y, f x < f y) is not checked.Z[\]^_`ahmbcdefpqsr|wxijlktzy{uv}~noTUVWYXgOPRSQ + #".$%!&'()*,-/021543Z[\]^_`ahmbcdefpqsr|wxijlktzy{uv}~noTUVWYXgOPRSQ(c) 2022 Dakotah LambertMIT Safe-InferredPlanguage-toolkit*True iff the automaton has a single state.(c) 2021-2023 Dakotah LambertMIT Safe-InferredU language-toolkit=A simpler way to denote syntactic monoids in type signatures.language-toolkitFor a given idempotent e, return the set generated by \{m : (\exists u,v)[umv=e]\}.language-toolkitFor a given idempotent e, return the set  me monoid e& multiplied on the left and right by e.language-toolkitThe semigroup multiplied on the left and right by the given idempotent.language-toolkitTrue iff the supplied elements commute with one another in the provided monoid.language-toolkit All elements e of the given monoid such that e*e=e;. Except the null word. Add that manually if you need it.language-toolkitomega monoid s is the unique element t where t*t = t and t is in \{s, s^2, s^3, \ldots\}. In other words, t/ is the unique idempotent element in this set.language-toolkitConstruct a monoid based on the idempotent paths as described by Straubing (1985). Elements are of the form  (e,esf,f) for idempotents e and f and arbitrary s.language-toolkitReturns a machine whose states represent monoid elements and where a transition exists from p to q if and only if p\leq q.  (c) 2023 Dakotah LambertMIT Safe-InferredXTlanguage-toolkitThe isVarietyM star desc function is equivalent to isVariety star desc.language-toolkitDetermine whether a given semigroup is in the pseudovariety described by the given equation set. Returns Nothing if and only if the equation set cannot be parsed. The Boolean operand determines whether to check for a *-variety (True) or a +-variety (False). In other words, it determines whether the class containing the empty string is included if that is the only string in the class."(c) 2019,2021-2024 Dakotah LambertMIT Safe-InferredYulanguage-toolkit8True iff the automaton recognizes a Star-Free stringset.language-toolkit!True iff the monoid is aperiodic.language-toolkit$True iff the semigroup is aperiodic."(c) 2019,2021-2024 Dakotah LambertMIT Safe-InferredZlanguage-toolkit1True iff the automaton recognizes a PT stringset.language-toolkitTrue iff the monoid is  \mathcal{J}-triviallanguage-toolkitTrue iff the semigroup is  \mathcal{J}-trivial(c) 2022-2024 Dakotah LambertMIT Safe-Inferred_ language-toolkitTrue iff the given language is multiple-tier-based (co)finite.language-toolkitTrue iff the given language is multiple-tier-based generalized-definite.language-toolkitTrue iff the monoid satisfies xyx^{\omega}=yx^{\omega}.language-toolkit!True iff the semigroup satisifes xyx^{\omega}=yx^{\omega}.language-toolkitTrue iff the monoid satisfies x^{\omega}yx=x^{\omega}y.language-toolkit!True iff the semigroup satisifes x^{\omega}yx=x^{\omega}y.language-toolkit0True iff the monoid is aperiodic and satisfies x^{\omega}y=yx^{\omega}.language-toolkit3True iff the semigroup is aperiodic and satisfies x^{\omega}y=yx^{\omega}.language-toolkitTrue iff the monoid satisfies .language-toolkit"True iff the semigroup satisfies .x^{\omega}uxvx^{\omega}=x^{\omega}uvx^{\omega} and 1x^{\omega}uxzvz^{\omega}=x^{\omega}uzxvz^{\omega}3. Thanks to Almeida (1995) for the simplification.   "(c) 2019,2021-2024 Dakotah LambertMIT Safe-Inferreda#language-toolkit3True iff the automaton recognizes an LTT stringset.language-toolkit0True iff the monoid recognizes an LTT stringset.language-toolkit3True iff the semigroup recognizes an LTT stringset. "(c) 2019,2021-2024 Dakotah LambertMIT Safe-Inferredbflanguage-toolkit2True iff the automaton recognizes an LT stringset.language-toolkit3True iff the given monoid is locally a semilattice.language-toolkit6True iff the given semigroup is locally a semilattice. (c) 2021-2024 Dakotah LambertMIT Safe-Inferredclanguage-toolkit3True iff the automaton recognizes an LPT stringset.language-toolkitTrue iff the monoid is locally  \mathcal{J} -trivial.language-toolkit"True iff the semigroup is locally  \mathcal{J} -trivial. (c) 2019-2024 Dakotah LambertMIT Safe-Inferreddlanguage-toolkit4True iff the automaton recognizes a LAcom stringset.language-toolkit1True iff the monoid recognizes a LAcom stringset.language-toolkit4True iff the semigroup recognizes a LAcom stringset. (c) 2021-2024 Dakotah LambertMIT Safe-InferredfMlanguage-toolkitTrue iff the automaton recognizes a generalized locally-testable stringset.language-toolkitTrue iff the monoid satisfies the generalized local testabiltiy condition.language-toolkitTrue iff the semigroup lies in M_e J_1.(c) 2021-2024 Dakotah LambertMIT Safe-Inferredglanguage-toolkit6True iff the syntactic monoid of the automaton is in \mathbf{M_e J}. This is a generalization of LPT in the same way that GLT is a generalization of LT.language-toolkit True iff the given monoid is in \mathbf{M_e J}.language-toolkit#True iff the given semigroup is in \mathbf{M_e J}.(c) 2021-2024 Dakotah LambertMIT Safe-Inferredn language-toolkitTrue iff the automaton recognizes a stringset representable in \mathrm{FO}^{2}[<].language-toolkit-True iff the monoid represents a language in \mathrm{FO}^{2}[<].language-toolkit-True iff the monoid represents a language in \mathrm{FO}^{2}[<].language-toolkitTrue iff the automaton recognizes a stringset representable in \mathrm{FO}^{2}[<,+1].language-toolkit%True iff the local submonoids are in \mathrm{FO}^{2}[<]. This means the whole is in \mathrm{FO}^{2}[<,+1].language-toolkit%True iff the local submonoids are in \mathrm{FO}^{2}[<]. This means the whole is in \mathrm{FO}^{2}[<,+1].language-toolkitTrue iff the automaton recognizes a stringset representable in \mathrm{FO}^{2}[<,\mathrm{bet}]:. Labelling relations come in the typical unary variety  \sigma(x) meaning a \sigma appears at position x!, and also in a binary variety  \sigma(x,y) meaning a \sigma) appears strictly between the positions x and y.language-toolkit:True iff the monoid represents a stringset that satisfies isFO2B.language-toolkit>True iff the semigroup represents a stringset that satisfies isFO2B.language-toolkitTrue iff the automaton recognizes a stringset representable in "\mathrm{FO}^{2}[<,\mathrm{betfac}]. This is like \mathrm{FO}^{2}[<,\mathrm{bet}]* except betweenness is of entire factors.language-toolkit"True iff the monoid lies in MeDA*D  (c) 2021-2024 Dakotah LambertMIT Safe-Inferredplanguage-toolkit in a given word, as well as the adjacency factors of length k and k+10. If a word is short enough to not contain any k-factors, the entire word, appropriately anchored, is included in the set.(c) 2020,2023 Dakotah LambertMIT Safe-Inferred#language-toolkit"A representation of a TSL grammar.language-toolkit Extract information from a word.-(c) 2019-2020 Dakotah LambertMIT Safe-Inferredt(c) 2019-2023 Dakotah Lambert Safe-Inferredlanguage-toolkit5Take three strings and merge them in such a way that  (from ATT) can understand the result. The three strings should represent the transitions, input symbols, and output symbols, respectively.language-toolkitConvert the output of (to ATT) into strings suitable for inclusion. The result represents the transitions, input symbols, and output symbols in that order.language-toolkitConvert an AT&T format string into one where input and output symbols have been reversed.language-toolkitImport an FSA from its representation in AT&T format. Note that this import is not perfect; it discards weights and returns only the input projection.language-toolkit Convert an Z into its AT&T format, with one caveat: The LTK internal format allows for symbols that the AT&T format does not understand, and no attempt is made to work around this. Nonnumeric symbols are exported as-is, while numeric symbols are necessarily mapped to their tags in the symbols file(s)."(c) 2019-2020,2023 Dakotah Lambert Safe-Inferredulanguage-toolkit-Construct a prefix-tree of a (finite) corpus.."(c) 2017-2019,2023 Dakotah LambertMIT Safe-Inferredlanguage-toolkitReturn value is in the range [0 .. n] , where n' is the size of the input. A value of n2 indicates that the element was not in the input.language-toolkit Convert an Z' to its representation in the GraphViz dot format.language-toolkit Convert an Z' to its representation in the GraphViz dot format, with a provided name.language-toolkitTurn a  into a :formatSet (fromList [1, 2, 3]) "{1, 2, 3}"/(c) 2022-2023 Dakotah LambertMIT Safe-Inferredzlanguage-toolkitDraw the egg-box representation of the given monoid in GraphViz dot format.0'(c) 2016-2019,2021,2023 Dakotah Lambert Safe-Inferredrlanguage-toolkit Import an Z: from its representation in Jeff's format. The resulting Int node labels may have nothing to do with the node labels in the source.language-toolkitSee . This function operates directly on the representation of the edge label.language-toolkitAutomata in Jeff's format use edge labels of the form @w0.s1@. This function converts the edge labels of an automaton from this form to the @L`@ form that we tend to use.language-toolkit Convert an Z( to its representation in Jeff's format.language-toolkitThe inverse of .language-toolkitThe inverse of .1(c) 2022,2023 Dakotah LambertMIT Safe-InferredBlanguage-toolkitDraw the Hasse diagram of the syntactic order of the given monoid in GraphViz dot format.(c) 2019 Dakotah LambertMIT Safe-Inferredlanguage-toolkitDetermine the tier alphabet for which the given FSA is a preprojection. This could simply be the entire alphabet of the FSA. Precondition: the given FSA must be in normal form.language-toolkitRemove symbols not relevant to the FSA's associated projection (as determined by tier7). Precondition: the given FSA must be in normal form."(c) 2019,2021-2024 Dakotah LambertMIT Safe-Inferred;language-toolkit3True iff the automaton recognizes a TLTT stringset.language-toolkit0True iff the monoid recognizes a TLTT stringset.language-toolkit3True iff the semigroup recognizes a TLTT stringset."(c) 2019,2021-2024 Dakotah LambertMIT Safe-Inferredvlanguage-toolkit2True iff the automaton recognizes a TLT stringset.language-toolkit/True iff the monoid recognizes a TLT stringset.language-toolkit2True iff the semigroup recognizes a TLT stringset.(c) 2021-2024 Dakotah LambertMIT Safe-Inferredlanguage-toolkit3True iff the automaton recognizes a TLPT stringset.language-toolkit0True iff the monoid recognizes a TLPT stringset.language-toolkit3True iff the semigroup recognizes a TLPT stringset. (c) 2022-2024 Dakotah LambertMIT Safe-Inferredlanguage-toolkit5True iff the automaton recognizes a TLAcom stringset.language-toolkit2True iff the monoid recognizes a TLAcom stringset.language-toolkit5True iff the semigroup recognizes a TLAcom stringset.!(c) 2021-2024 Dakotah LambertMIT Safe-Inferredylanguage-toolkitTrue iff the automaton recognizes a generalized definite stringset.language-toolkitTrue iff the monoid satisfies eSe=e for all idempotents e1, except the identity if it is not instantiated.language-toolkit!True iff the semigroup satisfies eSe=e for all idempotents e.language-toolkit?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~               .0000   !!!!!!""""""""############$$$$$$$$$%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((()*+++++++++++++++.../001''''''''''''''((++/language-toolkit-1.2.0.1-5dBoCls8g72LelcxdNt5RzLTK.ContainersLTK.FSALTK.Decide.Trivial LTK.AlgebraLTK.Decide.Variety LTK.Decide.SF LTK.Decide.PTLTK.Decide.MultitierLTK.Decide.LTT LTK.Decide.LTLTK.Decide.LPTLTK.Decide.LAcomLTK.Decide.GLTLTK.Decide.GLPTLTK.Decide.FO2LTK.Decide.DotDepth LTK.Decide.CBLTK.Decide.Acom LTK.FactorsLTK.Learn.StringExt LTK.Learn.SP LTK.Learn.SL#LTK.Learn.TSL.AugmentedSubsequencesLTK.Learn.TSL.ViaSLLTK.Porters.ATTLTK.Porters.Corpus LTK.Porters LTK.TiersLTK.Decide.TLTTLTK.Decide.TLTLTK.Decide.TLPTLTK.Decide.TLAcom LTK.Decide.GDLTK.Decide.FiniteLTK.Decide.Definite LTK.Decide.BLTK.TraversalsLTK.Extract.SPLTK.Porters.PlebLTK.Extract.SLLTK.Extract.TSLLTK.Decide.TSLLTK.Parameterslanguage-toolkit LTK.Learn.TSLLTK.Porters.DotLTK.Porters.EggBoxLTK.Porters.JeffLTK.Porters.SyntacticOrder LTK.DecideS LTK.DecideM LTK.Decide.SP LTK.Extract LTK.Decide.SL LTK.DecideLTK HasAlphabetalphabetDecreasingSize getDecreasingIncreasingSize getIncreasingMultiset Collapsiblecollapsesize Linearizablechoose ContainerisInisNotIncontainsdoesNotContainisEmptyunion intersection differencesymmetricDifferenceemptyinsert singleton isSubsetOf isSupersetOfisProperSubsetOfisProperSupersetOf chooseOne discardOne interleavezsizeisizeunionAll intersectAllanySallSbothtmapkeepgroupBy partitionByrefinePartitionByfromCollapsible multiplicitymultiplicitiessetFromMultisetmultisetFromListtr sequencesOverextractMonotonic$fContainerSeta$fContainerLista$fLinearizableSet$fLinearizableList$fCollapsibleSet$fCollapsibleList$fReadMultiset$fShowMultiset$fMonoidMultiset$fSemigroupMultiset$fContainerMultiseta$fCollapsibleMultiset$fLinearizableMultiset$fFunctorIncreasingSize$fOrdIncreasingSize$fFunctorDecreasingSize$fOrdDecreasingSize$fEqDecreasingSize$fReadDecreasingSize$fShowDecreasingSize$fEqIncreasingSize$fReadIncreasingSize$fShowIncreasingSize $fEqMultiset $fOrdMultiset Transition edgeLabelsource destinationState nodeLabelSymbolEpsilonFSAsigma transitionsinitialsfinalsisDeterministicstatestotalWithAlphabetemptyWithAlphabet emptyLanguagesingletonWithAlphabetsingletonLanguage unsymbolsisNullflatIntersection flatUnion flatShuffleflatInfiltrationaccepts commonPrefix commonSuffixbrzozowskiDerivativequotLeft quotRightquotMid autDifference complementcomplementDeterministicresidue coresidue autShuffleautInfiltrationautStrictOrderOverlay kleeneClosureminimizeminimizeDeterministic minimizeOvernerodetrimUnreachablesreverse normalize jEquivalenceprimitiveIdealLfollowprimitiveIdealRprimitiveIdeal2 trivialUnder hEquivalence determinize powersetGraphsyntacticMonoidsyntacticSemigroupsyntacticOSemigroupsyntacticOMonoid orderGraphsccsccGraphextendAlphabetTosemanticallyExtendAlphabetTo desemantifyloopifytierify neutralizecontractAlphabetToforceAlphabetTo renameStatesrenameStatesByrenameSymbolsBy$fNFDataSymbol$fFunctorSymbol $fNFDataState $fMonoidState$fSemigroupState $fMonadState$fApplicativeState$fFunctorState$fFunctorTransition$fNFDataTransition$fHasAlphabetFSA $fNFDataFSA $fMonoidFSA$fSemigroupFSA$fContainerFSAList$fOrdFSA$fEqFSA$fFunctorNoitisnart $fNFDataTree$fEqTree $fOrdTree $fReadTree $fShowTree$fEqID$fOrdID$fReadID$fShowID $fShowFSA $fReadFSA$fEqTransition$fOrdTransition$fShowTransition$fReadTransition $fEqState $fOrdState $fReadState $fShowState $fEqSymbol $fOrdSymbol $fReadSymbol $fShowSymbol isTrivialSynMonmeemeeese isCommutative idempotentsomegaemblocksyntacticOrder isVarietyM isVarietyisSFisSFMisSFsisPTisPTMisPTsisMTDefisMTRDefisMTFisMTGDisMTDefMisMTDefs isMTRDefM isMTRDefsisMTFMisMTFsisMTGDMisMTGDsisLTTisLTTMisLTTsisLTisLTMisLTsisLPTisLPTMisLPTsisLAcomisLAcomMisLAcomsisGLTisGLTMisGLTsisGLPTisGLPTMisGLPTsisFO2isFO2MisFO2sisFO2SisFO2SMisFO2SsisFO2BisFO2BMisFO2BsisFO2BFisFO2BFMisDot1isDot1MisDot1sisCBisCBMisCBsisAcomisAcomMisAcomscomTest Conjunction DisjunctionLiteralFactor Substring Subsequence substring headAnchored tailAnchoredrequired forbidden buildLiteralbuildmakeConstraint$fEqConjunction$fOrdConjunction$fReadConjunction$fShowConjunction$fEqDisjunction$fOrdDisjunction$fReadDisjunction$fShowDisjunction $fEqLiteral $fOrdLiteral $fReadLiteral $fShowLiteral $fEqFactor $fOrdFactor $fReadFactor $fShowFactorGrammargenFSAaugmentGisSubGOfemptyGlearn augmentSEisRecognizedBySPGfSP $fGrammarSPG$fHasAlphabetSPG$fEqSPG$fOrdSPG $fReadSPG $fShowSPGSLGslgAlphaslgKslgfSL $fGrammarSLG$fHasAlphabetSLG$fEqSLG$fOrdSLG $fReadSLG $fShowSLGTSLGfTSL $fGrammarTSLG$fHasAlphabetTSLG$fEqTSLG $fOrdTSLG $fReadTSLG $fShowTSLGembedSymbolsATTextractSymbolsATT invertATTreadATT exportATT readCorpus formatSettransliterateString transliterateuntransliterateuntransliterateStringtierprojectisTLTTisTLTTMisTLTTsisTLTisTLTMisTLTsisTLPTisTLPTMisTLPTsisTLAcom isTLAcomM isTLAcomsisGDisGDMisGDsisTGDisTGDMisTGDsisFinite isCofinite isFiniteM isCofiniteM isTFinite isTFiniteM isTCofinite isTCofiniteMisDefisDefMisDefsisRDefisRDefMisRDefsisTDefisTDefMisTDefsisTRDefisTRDefMisTRDefsisBisBMisBsisLBisLBMisLBsisTLBisTLBMisTLBsPathlabelsendstate stateMultisetdepthword extensions!nondeterministicAcyclicExtensionsboundedCycleExtensions initialsPathsinitialsNDPath acyclicPathsrejectingPaths isAcyclic $fMonoidPath$fSemigroupPath $fOrdPath$fEqPath $fShowPathForbiddenSubsequencesattestedAlphabetgetSubsequencesisSSQsubsequenceClosureforbiddenSubsequencesisSPfsaFromForbiddenSubsequences$$fContainerForbiddenSubsequencesList$fEqForbiddenSubsequences$fOrdForbiddenSubsequences$fReadForbiddenSubsequences$fShowForbiddenSubsequencesParsedoParse DictionarySymSetExprEnvTokentokenizereadPleb doStatementsdoStatementsWithError insertExpr compileEnv groundEnvrestoreUniverserestrictUniverse makeAutomatonmakeAutomatonE parseExprfromSemanticAutomaton fromAutomaton $fMonadParse$fAlternativeParse$fApplicativeParse$fFunctorParse $fEqStatement$fOrdStatement$fReadStatement$fShowStatement$fEqExpr $fOrdExpr $fReadExpr $fShowExpr $fEqPLFactor $fOrdPLFactor$fReadPLFactor$fShowPLFactor $fEqSymSet $fOrdSymSet $fReadSymSet $fShowSymSet $fEqToken $fOrdToken $fReadToken $fShowTokenCorpusATTOATTPlebSyntacticOrderEggBoxDotJeffType ImportabletoFSA ExportablefromFSAfromfromEto$fImportableJeff$fExportableJeff$fExportableDot$fExportableEggBox$fExportableSyntacticOrder$fImportablePleb$fExportableATT$fImportableATT$fExportableATTO$fImportableATTO$fImportableCorpusForbiddenPaths initialPaths freePaths finalPathsTaggedSubstringFreeInitialFinalWordForbiddenSubstrings attestedUnitsforbiddenWordsforbiddenInitialsforbiddenFreesforbiddenFinalsisSLslQfactorsFromPathsforbiddenSubstringsbuildFSA-$fContainerForbiddenSubstringsTaggedSubstring$fEqForbiddenPaths$fOrdForbiddenPaths$fEqTaggedSubstring$fOrdTaggedSubstring$fReadTaggedSubstring$fShowTaggedSubstring$fEqForbiddenSubstrings$fOrdForbiddenSubstrings$fShowForbiddenSubstrings$fReadForbiddenSubstringsforbiddenTierSubstringsisTSL ParameterPIntPSymSetpTierpCBpDefpRDefpGDefpAcompSPpSL $fEqParameter$fOrdParameter$fReadParameter$fShowParametercontainers-0.6.7Data.Set.InternalSetdeltaD ghc-bignumGHC.Num.IntegerIntegerbase GHC.MaybeNothingrenameStatesByMonotonicrenameSymbolsByMonotonicfSP'allFs shortLabelIn exportDotexportDotWithNameGHC.BaseString exportEggBoxreadJeff exportJeffexportSyntacticOrder StatementPLFactor DownClose Infiltration NeutralizeReversalShuffle QuotientL QuotientRUpCloseevaluate evaluateSfillVarsautomatonFromExprslPSGQforbiddenSubstringsWithAlphabetrchain dagHeight