2^u      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst SafeuDecode hexadecimal escapesv(Decode application/x-www-form-urlencodedw"Decode "+" and hexadecimal escapes xuvywz{|}~uv xuvywz{|}~ Safe// Safe  1 SafeSafeLike  , but O(n log n) instead of O(n^2), since it uses a set to lookup previous things. The result list is stable (the elements are returned in the order they occur), and lazy. Requires that the list elements can be compared by Ord. Code ruthlessly taken from http://hpaste.org/544118Replace all occurences of an element by another element.SafeSafe normalize = change grave accent on sentence internal words to acute, and shift inherited acutes to the following enclitic (where they are visible only as shown in the list of enclitics above) de-normalize = change acute accent of end syllables in sentence internal (non-enclitic) words to grave accent, and move accents of enclitics to the previous word to produce ordinary ancient greek-Change accent on the final syllable of a word1Accent moves for enclitics and proclitics (atona)Accent manipulation Accent checking on end syllables  !"  !"  !"  !"Safe #QText lexing with standard word capitalization of the first word of every sentence$FText lexing with custom treatment of the first word of every sentence.&.Bind tokens separated by Prelude.BIND, i.e. &+'#Haskell lexer, usable for much code)ILaTeX lexer in the math mode: should not be separated from the next word*CLaTeX style lexer, with "math" environment using Code between $...$,Capitalize first letter-Uncapitalize first letter.,Unquote each string wrapped in double quotes#$%&'()*+,-./0123#$%&'()*+,-./0123#$%&'()*+,-./0123#$%&'()*+,-./0123Safe9;<=? 4-Haskell representation of the GF record type {s:t}6#Overloaded function to project the s field from any record type9TokensA4Token sequences, output form linearization functionsB/For enumerating parameter values used in tablesDTablesERender a token sequence as a FCoerce from any record type  {...,s:t,...} to the supertype {s:t}GConcatenation with variantsH#Selection from tables with variants456782To be matched with the prefix of a following token9:;<=>?@ABCDEFGHIJKL456789:;<=>?@ABCDEFGHIJBCDA9:;<=>?@8E6745LKFGHIJ456789:;<=>?@ABCDEFGHIJKLG5SafeSWAn abstract data type that represents identifiers for functions and categories in PGF.UCreates a new identifier from V+Creates an identifier from a UTF-8-encoded  ByteStringWReads an identifier from . The function returns ' if the string is not valid identifier.XRenders the identifier as STUVWXYZ STUVWXYZSTUVWXYZSafe__O represents a hypothesis in a type i.e. in the type A -> B, A is the hypothesis`To read a type from a , use a.aReads a ` from a .brenders type as z. The list of identifiers is the list of all free variables in the expression in order reverse to the order of binding.cmcreates a type from list of hypothesises, category and list of arguments for the category. The operation $mkType [h_1,...,h_n] C [e_1,...,e_m] will create "h_1 -> ... -> h_n -> C e_1 ... e_md0creates hypothesis for non-dependent type i.e. Ae2creates hypothesis for dependent type i.e. (x : A)fKcreates hypothesis for dependent type with implicit argument i.e. ({x} : A)_`abcdefgS_`abcdefg_`abcdefgSafestring constantinteger constantfloating point constant)     &           Safe ^An expression in the abstract syntax of the grammar. It could be both parameter of a dependent type or an abstract syntax tree for for some sentence.nThe equation is used to define lambda function as a sequence of equations with pattern matching. The list of ^) represents the patterns and the second ^) is the function body for this equation.NThe pattern is used to define equations in the abstract syntax of the grammar.Dapplication. The identifier should be constructor i.e. defined with 'data'literalvariablevariable@patternwildcardimplicit argument in patternlambda abstraction applicationliteral meta variablefunction or data constructor variable with de Bruijn index!local type signature"implicit argument in expressionheTree is the abstract syntax representation of a given sentence in some concrete syntax. Technically h is a type synonym of ^.iparses  as an expressionjrenders expression as z. The list of identifiers is the list of all free variables in the expression in order reverse to the order of binding.mHConstructs an expression by applying a function to a list of expressionsn5Decomposes an expression into application of function#bDecomposes an expression into an application of a constructor such as a constant or a metavariableo,Constructs an expression from string literalp,Decomposes an expression into string literalq-Constructs an expression from integer literalr-Decomposes an expression into integer literals1Constructs an expression from real number literalt1Decomposes an expression into real number literalu/Constructs an expression which is meta variablev/Checks whether an expression is a meta variable$$Compute an expression to normal formG[\]^%&'()*+,-./0123456 !"h7ijklmn#opqrstuvw89:;<=>x$?@ABCDG[\]^ !"%&'()  *+,1-/02.3456h7ijklmn#opqrstuvw:;<=x$?@AB-[\]^ !"%&'()*+,-./0123456h7ijklmn#opqrstuvw89:;<=>x$?@ABCDSafeyThis is just a S with the language name. A language name is the identifier that you write in the top concrete or abstract module in GF after the concrete/abstract keyword. Example: 2abstract Lang = ... concrete LangEng of Lang = ...Evalue of a flagF5type, arrity and definition of function + probabilityG context of a categoryXfunctions of a category. The functions are stored in decreasing probability order. probabilityTAn abstract data type representing multilingual grammar in Portable Grammar Format.Byz{|HIJKLMNOPQRSTUVWXYZ[\]^}~_`abcdefghijklmnEFGopqrstuvwxyz{|S[\]^ !"%&'()_`abcdefg  1-/02.34567ijklmn#opqrstuvw:;<=x$yz{|HIJKLMNOPQRSTUVWXYZ[\]^}~_`abcdefghijklmnFGEosrpqtuvwxyz{|yz{|HIJKLMNOPQR STUVWXYZ[\]^}~_ `abcdefghijklmnEFGopqrstuvwxyz{|SafecBracketedString represents a sentence that is linearized as usual but we also want to retain the ' brackets': that mark the beginning and the end of each constituent.$this is the leaf i.e. a single tokenthis is a bracket. The S% is the category of the phrase. The ~ is an unique identifier for every phrase in the sentence. For context-free grammars i.e. without discontinuous constituents this identifier is also unique for every bracket. When there are discontinuous phrases then the identifiers are unique for every phrase but not for every bracket since the bracket represents a constituent. The different constituents could still be distinguished by using the constituent index i.e. }. If the grammar is reduplicating then the constituent indices will be the same for all brackets that represents the same constituent.AList of functions that lack linearizations in the given language.*Show the printname of function or categoryIRenders the bracketed string as string where the brackets are shown as (S ...) where S is the category.}7The length of the bracketed string in number of tokens.0~}0~}'~}Safe   NoneSafehAn abstract data structure which represents the probabilities for the different functions in a grammar.+Renders the probability structure as stringReads the probabilities from a file. This should be a text file where on every line there is a function name followed by a real number. The number represents the probability mass allocated for that function. The function name and the probability should be separated by a whitespace.Builds probability tables. The second argument is a map which contains the know probabilities. If some function is not in the map then it gets assigned some probability based on the even distribution of the unallocated probability mass for the result category.%Returns the default even distibution.'compute the probability of a given tree'rank from highest to lowest probability SafeSafe:5Linearizes given expression as string in the language The same as # but does not return the language.QLinearizes given expression as string in all languages available in the grammar.ALinearizes given expression as a bracketed string in the language\Creates a table from feature name to linearization. The outher list encodes the variationsSafeThe tree is an evaluated expression in the abstract syntax of the grammar. The type is especially restricted to not allow unapplied lambda abstractions. The tree is used directly from the linearizer and is produced directly from the parser.6lambda abstraction. The list of variables is non-emptyvariablefunction applicationliteral meta variableaConverts a tree to expression. The conversion is always total, every tree is a valid expression.Converts an expression to tree. The conversion is only partial. Variables and meta variables of function type and beta redexes are not allowed.  AR(stable) (portable)SafeConverts a pattern to tree.  Krasimir Angelov(stable) (portable)Safe9;<=OTmIf an error occurs in the typechecking phase the type checker returns not a plain text error message but a % structure which describes the error. Unknown category name was found. Unknown function name was found.A category was applied to wrong number of arguments. The first integer is the number of expected arguments and the second the number of given arguments. The [CId]P argument is the list of free variables in the type. It should be used for the b function.yThe expression is not of the expected type. The first type is the expected type, while the second is the inferred. The [CId]j argument is the list of free variables in both the expression and the type. It should be used for the b and j functions.BSomething that is not of function type was applied to an argument.6It is not possible to infer the type of an expression.QSome metavariables have to be instantiated in order to complete the typechecking.<Implicit argument was passed where the type doesn't allow it%There is a goal that cannot be solved<returns the type and the De Bruijn index of a local variable1returns the type and the name of a local variable3Renders the type checking error to a document. See .RCheck whether a given type is consistent with the abstract syntax of the grammar..Checks an expression against a specified type.Tries to infer the type of a given expression. Note that even if the expression is type correct it is not always possible to infer its type in the GF type system. In this case the function returns the  error.M     1 ;       SafeOGenerates an exhaustive possibly infinite list of abstract syntax expressions. A variant of X which also takes as argument the upper limit of the depth of the generated expression.EGenerates a list of abstract syntax expressions in a way similar to [ but instead of generating all instances of a given type, this function uses a template.  A variant of \ which also takes as argument the upper limit of the depth of the generated subexpressions.Generates an infinite list of random abstract syntax expressions. This is usefull for tree bank generation which after that can be used for grammar testing. A variant of X which also takes as argument the upper limit of the depth of the generated expression.#Random generation based on templateCRandom generation based on template with a limitation in the depth. !Krasimir Angelov stable  portable Safe9This function extracts the list of all completed parse trees that spans the whole input consumed so far. The trees are also limited by the category specified, which is usually the same as the startup category.  !"#$%&'()* } !"#$%& !"#$%&'()*"None:OT+`An abstract data type whose values represent the state in an incremental parser after an error.YAn abstract data type whose values represent the current state in an incremental parser.RThis data type encodes the different outcomes which you could get from the parser.HThe integer is the position in number of tokens where the parser failed.SThe parsing was successful but none of the trees is type correct. The forest id (~) points to the bracketed string from the parser where the type checking failed. More than one error is returned if there are many analizes for some phrase but they all are not type correct.zIf the parsing and the type checking are successful we get a list of abstract syntax trees. The list should be non-empty.=The sentence is not complete. Only partial output is produced@The input to the parser is a pair of predicates. The first one  selects a token from a list of suggestions from the grammar, actually appears at the current position in the input string. The second one - recognizes whether a literal with forest id ~+ could be matched at the current position.LCreates an initial parsing state for a given language and startup category.{This function constructs the simplest possible parser input. It checks the tokens for exact matching and recognizes only String, Int and Float literals. The Int and Float> literals match only if the token passed is some number. The StringL literal always match but the length of the literal could be only one token.+From the current state and the next token  computes a new state, where the token is consumed and the current position is shifted by one. If the new token cannot be accepted then an error state is returned.UIf the next token is not known but only its prefix (possible empty prefix) then the  function can be used to calculate the possible next words and the consequent states. This is used for word completions in the GF interpreter.This function extracts the list of all completed parse trees that spans the whole input consumed so far. The trees are also limited by the category specified, which is usually the same as the startup category.SReturn the Continuation of a Parsestate with exportable types Used by PGFService5+,-./0123456789:;<=>?@ABCDEFGHIJKLM+@A"+,-./0123456789:;<=>?@ABCDEFGHIJKLM#KA(stable) (portable)Safe>Renders abstract syntax tree in Graphviz format. The pair of N  (funs,cats)_ lets you control whether function names and category names are included in the rendered tree.Visualize word dependency tree.JPrepare lines obtained from a configuration file for labels for use with . Format per line fun label*.ORender LaTeX pictures as SVG]PQRSTUVWXYZ[\]^_`abcdefghijklmnopOutput format: "latex", "conll",  "malt_tab",  "malt_input" or "dot"!Include extra information (debug))abstract label information obtained with @concrete label information obtained with ' ' (was: unused (was:  Maybe String))The language of analysis'Rendered output in the specified formatqrstuvwxyz{|}~OBPQRSTUVWXYZ[\]^_`abcdefghijklmnop qrstuvwxyz{|}~O$Safe:%Safe!Safe&5566&Safe'None(Safe)Bjorn Bringert (stability) (portability)SafeRun an IO action, and allow it to be interrupted by a SIGINT to the current process. Returns an exception if the process did not complete normally. NOTES: * This will replace any existing SIGINT handler during the action. After the computation has completed the existing handler will be restored. * If the IO action is lazy (e.g. using readFile, unsafeInterleaveIO etc.) the lazy computation will not be interruptible, as it will be performed after the signal handler has been removed.Like A, but always returns (), whether the computation fails or not."Run an action with SIGINT blocked.*Bjorn Bringert (stability) (portability)Safe+Safe ;      !" ,SafeJSet the console encoding (for Windows, has no effect on Unix-like systems) #$#$-Safe%oAccording to comments in cabal-install cbits/getnumprocessors.c this function is part of the RTS of GHC>=6.12.&MSet parallelism to a given number, or use the number of processors. Returns 'Z if compiled with GHC<7.6 and the desired number of threads hasn't already been set with +RTS -Nn -RTS.(/Returns the number of processors in the system.%&(&(%&(.Safe      /Safe)=Feed some input to a shell process and read the output lazily) shell commandinput to shell commandoutput from shell command))0Safe**+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS**+,-./0>612345789:;<=?@ABCDEFGHIJKLMNOPQRS *+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS1SafeTUVWXYZ[\]^_`abcdefghijklmnTUVWXTUVWXYZ[\]^_`abcdefghijklmn2Safe Attaching location information   opq        opq3(c) Sven Panne 2002-2005/BSD-style (see the file libraries/base/LICENSE)libraries@haskell.org experimentalportableSafe rsDescribes whether an option takes an argument or not, and if so how the argument is injected into a value of type a.sno argument expectedtoption requires argumentuoptional argumentvEach v describes a single option.The arguments to w are:list of short option characters*list of long option strings (without "--")argument descriptorexplanation of option for userx-What to do with options following non-optionsy+no option processing after first non-optionz*freely intersperse options and non-options{wrap non-options into options|Return a string describing the usage of a command, derived from the header (first argument) and the options described by the second argument.}pProcess the command-line, and return the list of values that matched (and those that didn't). The arguments are:The order requirements (see x)The option descriptions (see v):The actual command line arguments (presumably got from 45).}j returns a triple consisting of the option arguments, a list of non-options, and a list of error messages.~This is almost the same as }, but returns a quadruple consisting of the option arguments, a list of non-options, a list of unrecognized options, and a list of error messages.rstuvwxyz{|}~ rstuvwxyz{|}~rstuvwxyz{|}~6None 7PL(stable) (portable)Safe Like 5, but returns the empty list when the input is empty.ESorts and then groups elements given an ordering of the elements."Take the union of a list of lists.Like J, but fails if the argument is not found, instead of returning Nothing.Like  , but fails if nothing is found.Set a value in a lookup table.%Group tuples by their first elements.2Use an ordering function as an equality predicate.:Return the given value if the boolean is true, els return .2Returns true if the argument is Nothing or Just []4Apply all the functions in the list to the argument.Fixpoint iteration.DJoin a number of lists by using the given glue between the lists.(glue lists to join*(8Safe  9AR(stable) (portable)Safeta variant can itself be a token list, but for simplicity only a list of strings i.e. not itself containing variantsLnotice that having both pre and post would leave to inconsistent situations: /pre {"x" ; "y" / "a"} ++ post {"b" ; "a" / "x"}=always violates a condition expressed by the one or the other"variants depending on next string Cabstract token list type. AR 2001, revised and simplified 20/4/2003 :BB(stable) (portable)Safe'Keeps both incoming and outgoing edges.0Creates a relation from a list of related pairs.UCreates a relation from a list pairs of elements and the elements related to them.Add a pair to the relation.$Add a list of pairs to the relation.+Checks if an element is related to another.<Get the set of elements to which a given element is related.!Get all elements in the relation.=Keep only pairs for which both elements are in the given set.Uses 8Get the set of elements which are related to themselves.7Keep the related pairs for which the predicate is true.$Remove keys that map to no elements.:Get the equivalence classes from an equivalence relation. Returns  if there are cycles, and  if there are cycles.Removes an element from a relation. Returns the new relation, and the set of incoming and outgoing edges of the removed element.#+The set over which the relation is defined.         #     ;BB(stable) (portable)SafeKGraph type, graph ID, graph attirbutes, graph nodes, graph edges, subgraphs  !"#$%&'()*+,-./01 !"#$% !"#$%&'()*+,-./01<BB(stable) (portable)Safe 2Create a new empty graph.3Get all the nodes in the graph.4Get all the edges in the graph.5$Map a function over the node labels.6$Map a function over the edge labels.7Add a node to the graph.82Remove a node and all edges to and from that node.9<Remove a set of nodes and all edges to and from those nodes.:0Get a map of node names to info about each node.;Add the nodes from the second graph to the first graph. The nodes in the second graph will be renamed using the name supply in the first graph. This function is more efficient when the second graph is smaller than the first.<Rename the nodes in the graph.= A strict >!?@ABC234567 Node labelNode graph and name of new nodeDEFG89:HGets the node to group byIJKLMNOPQRS;rThe new graph and a function translating the old names of nodes in the second graph to names in the new graph.<renaming functionOinfinite supply of fresh node names, to use when adding nodes in the future.=?@ABC234567DEFG89:JKLMNOPQRS;< ?@ABC234567DEFG89:HIJKLMNOPQRS;<==BB(stable) (portable)Safe TType parameters: node id type, state label type, edge label type Data constructor arguments: nodes and edges, start state, final statesU@Create a new finite automaton with an initial and a final state.V\Gets all incoming transitions to a given state, excluding transtions from the state itself.WGive new names to all nodes.XInsert an NFA into anotherYMake the finite automaton have a single final state by adding a new final state and adding an edge from the old final states to the new state.ZTransform a standard finite automaton with labelled edges to one where the labels are on the nodes instead. This can add up to one extra node per edge.[tRemove empty nodes which are not start or final, and have exactly one outgoing edge or exactly one incoming edge.\sMove edges to empty nodes to point to the next node(s). This is not done if the pointed-to node is a final node.]IRemove all internal nodes with no incoming edges or no outgoing edges.^EGet all the nodes reachable from a list of nodes by only empty edges._Get a map of labels to sets of all nodes reachable from a the set of nodes by one edge with the given label and then any number of empty edges..`aTbcdefghStart node labelUijklmnopqrstuVvwWInfinite supply of new namesXNFA to insert intoStates to insert betweenNFA to insert.xYLabel to give the new nodeLabel to give the new edgesThe old networkThe new networkZ[\yz]{A node and its incoming edges-Replacement nodes with their incoming edges.|^_}~%`aTbcdefghUijklmnopqrstuVvwWXxYZ[y-`aTbcdefghUijklmnopqrstuVvwWXxYZ[\yz]{|^_}~>SafeREUnion [] is nullREConcat [] is epsilon?AR(stable) (portable)SafeLike  type with error msgs Analogue of  Analogue of  fromMaybe added by KJadded 2/10/2003 by PEB @AR(stable) (portable)Safe " Add msg s to  failures*@this is what happens when matching two values in the same moduleIThomas Hallgren's wrap linesJJ is the same as !!! peb 30/5-04K*Topological sorting with test of cyclicityLFTopological sorting with test of cyclicity, new version /TH 2012-06-26MKFix point iterator (for computing e.g. transitive closures or reachability)N#chop into separator-separated partsP  return ()(if the first check fails try another one9 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR< !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR6 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR657585:5APL(stable) (portable)Safe9;<=OTBSafeCSafeDAR(stable) (portable)SafeELennart KolmodinBSD3-style (see LICENSE),Lennart Kolmodin <kolmodin@dtek.chalmers.se> experimentalportable to Hugs and GHC.NoneBHThe Get monad is just a State monad carrying around the input ByteStringThe parse stateRun the Get monad applies a %-based parser on the input ByteStringRun the Get monad applies a -based parser on the input ByteString. Additional to the result of get it returns the number of consumed bytes and the rest of the input. Skip ahead n bytes. Fails if fewer than n bytes are available. Skip ahead n- bytes. No error if there isn't enough bytes.Run ga4, but return without consuming its input. Fails if ga fails.Like , but consume the input if gma returns 'Just _'. Fails if gma fails.Like , but consume the input if gea returns 'Right _'. Fails if gea fails.Get the next up to n5 bytes as a lazy ByteString, without consuming them. 1Get the total number of bytes read to this point.Get the number of remaining unparsed bytes. Useful for checking whether all input has been consumed. Note that this forces the rest of the input.VTest whether all input has been consumed, i.e. there are no remaining unparsed bytes. An efficient 5 method for strict ByteStrings. Fails if fewer than n bytes are left in the input. An efficient ; method for lazy ByteStrings. Does not fail if fewer than n bytes are left in the input.vGet a lazy ByteString that is terminated with a NUL byte. Fails if it reaches the end of input without hitting a NUL.,Get the remaining bytes as a lazy ByteString importantPull n. bytes from the input, as a strict ByteString.lSplit a ByteString. If the first result is consumed before the -- second, this runs in constant heap space.8You must force the returned tuple for that to work, e.g. >case splitAtST n xs of (ys,zs) -> consume ys ... consume zs important!Read a Word8 from the monad state"Read a Word16 in big endian format%Read a Word16 in little endian format"Read a Word32 in big endian format%Read a Word32 in little endian format"Read a Word64 in big endian format%Read a Word64 in little endian formatO(1). Read a single native machine word. The word is read in host order, host endian form, for the machine you're on. On a 64 bit machine the Word is an 8 byte value, on a 32 bit machine, 4 bytes.O(1).? Read a 2 byte Word16 in native host order and host endianness.O(1).8 Read a Word32 in native host order and host endianness.O(1).7 Read a Word64 in native host order and host endianess.0-FLennart Kolmodin, Ross PatersonBSD3-style (see LICENSE),Lennart Kolmodin <kolmodin@dtek.chalmers.se> experimentalportable to Hugs and GHCNoneBA # is an efficient way to build lazy 1s. There are several functions for constructing Xs, but only one to inspect them: to extract any data, you have to turn them into lazy s using .Internally, a  constructs a lazy GH by filling byte arrays piece by piece. As each buffer is filled, it is 'popped' off, to become a new chunk of the resulting lazy +. All this is hidden from the user of the .O(1). The empty Builder, satisfying   =  O(1).+ A Builder taking a single byte, satisfying  (  b) =   b O(1).L The concatenation of two Builders, an associative operation with identity  , satisfying  (  x y) =   ( x) ( y) O(1). A Builder taking a  , satisfying  (  bs) =  [bs]O(1). A Builder taking a lazy  , satisfying  ( bs) = bsO(n). Extract a lazy  from a P. The construction work takes place if and when the relevant part of the lazy  is demanded.O(1). Pop the N we have constructed so far, if any, yielding a new chunk in the result lazy .&Sequence an IO operation on the bufferGet the size of the buffer&Map the resulting list of bytestrings.Ensure that there are at least n many bytes available. Ensure that n( many bytes are available, and then use f& to write some bytes into the memory. Ensure that n( many bytes are available, and then use f0 to write some storable values into the memory.#Write a Word16 in big endian format&Write a Word16 in little endian format#Write a Word32 in big endian format&Write a Word32 in little endian format#Write a Word64 in big endian format&Write a Word64 in little endian formatO(1).; A Builder taking a single native machine word. The word is written in host order, host endian form, for the machine you're on. On a 64 bit machine the Word is an 8 byte value, on a 32 bit machine, 4 bytes. Values written this way are not portable to different endian or word sized machines, without conversion.]Write a Word16 in native host order and host endianness. 2 bytes will be written, unaligned. ]Write a Word32 in native host order and host endianness. 4 bytes will be written, unaligned.!Write a Word64 in native host order. On a 32 bit machine we write two host order Word32s, in big endian form. 8 bytes will be written, unaligned.$"#$%   &'() !*+,-    !!"#$%   &'() !*+,-ILennart KolmodinBSD3-style (see LICENSE),Lennart Kolmodin <kolmodin@dtek.chalmers.se>stable(Portable to Hugs and GHC. Requires MPTCsNone.<Put merely lifts Builder into a Writer monad, applied to ()./@The PutM type. A Writer monad over the efficient Builder monoid.0Run the . monad1Run the . monad with a serialiser2Run the .+ monad with a serialiser and get its result3fPop the ByteString we have constructed so far, if any, yielding a new chunk in the result ByteString.4/Efficiently write a byte into the output buffer5An efficient primitive to write a strict ByteString into the output buffer. It flushes the current buffer, and writes the argument into a new chunk.6fWrite a lazy ByteString efficiently, simply appending the lazy ByteString chunks to the output buffer7#Write a Word16 in big endian format8&Write a Word16 in little endian format9#Write a Word32 in big endian format:&Write a Word32 in little endian format;#Write a Word64 in big endian format<&Write a Word64 in little endian format=O(1).0 Write a single native machine word. The word is written in host order, host endian form, for the machine you're on. On a 64 bit machine the Word is an 8 byte value, on a 32 bit machine, 4 bytes. Values written this way are not portable to different endian or word sized machines, without conversion.>O(1).V Write a Word16 in native host order and host endianness. For portability issues see  putWordhost.?O(1).V Write a Word32 in native host order and host endianness. For portability issues see  putWordhost.@O(1). Write a Word64 in native host order On a 32 bit machine we write two host order Word32s, in big endian form. For portability issues see  putWordhost../ABCDEFG0123456789:;<=>?@HIJ./ABG0123456789:;<=>?@./ABCDEFG0123456789:;<=>?@HIJJNoneI3KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ^_`abcijkl&KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}KLennart KolmodinBSD3-style (see LICENSE),Lennart Kolmodin <kolmodin@dtek.chalmers.se>unstableFportable to Hugs and GHC. Requires the FFI and some flexible instancesNone9:;SThe Binary class provides ~ and , methods to encode and decode a Haskell value to a lazy ByteString. It mirrors the Read and Show classes for textual representation of Haskell types, and is suitable for serialising Haskell values to disk, over the network.For parsing and generating simple external binary formats (e.g. C structures), Binary may be used, but in general is not suitable for complex protocols. Instead use the Put and Get primitives directly.:Instances of Binary should satisfy the following property: decode . encode == id That is, the  and ~j methods should be the inverse of each other. A range of instances are provided for basic Haskell types. ~ Encode a value in the Put monad.Decode a value in the Get monadT?Encode a value using binary serialisation to a lazy ByteString.UMDecode a value from a lazy ByteString, reconstructing the original structure.V"Lazily serialise a value to a file<This is just a convenience function, it's defined simply as: %encodeFile f = B.writeFile f . encode@So for example if you wanted to compress as well, you could use: !B.writeFile f . compress . encodeW8Lazily reconstruct a value previously written to a file.<This is just a convenience function, it's defined simply as: /decodeFile f = return . decode =<< B.readFile fBSo for example if you wanted to decompress as well, you could use: -return . decode . decompress =<< B.readFile f4S~TUVW.4S~TUVW2S~TUVWLNone&&MNoneKrasimir AngelovstableportableNoneX+A type for tries of plain applicative trees["A type for plain applicative trees^4Reads file in Portable Grammar Format and produces . structure. The file is usually produced with: $ gf -make <grammar file name>_eTries to parse the given string in the specified language and to produce abstract syntax expression.` The same as a# but does not return the language.aTries to parse the given string with all available languages. The returned list contains pairs of language and list of abstract syntax expressions (this is a list, since grammars can be ambiguous). Only those languages for which at least one parsing is possible are listed.b The same as _& but returns more detailed informationc9This is an experimental function. Use it on your own riskeHThe abstract language name is the name of the top-level abstract modulef5List of all languages available in the given grammar.gGets the RFC 4646 language tag of the language which the given concrete syntax implements, if this is listed in the source grammar. Example language tags include "en" for English, and "en-UK" for British English.hList of all categories defined in the given grammar. The categories are defined in the abstract syntax with the 'cat' keyword.jThe start category is defined in the grammar with the 'startcat' flag. This is usually the sentence category but it is not necessary. Despite that there is a start category defined you can parse with any category. The start category definition is just for convenience.k4List of all functions defined in the abstract syntaxl2List of all functions defined for a given categorymThe type of a given functionn%Converts an expression to normal formp Convert a h to an [q#Combine a list of trees into a trieXYZ[\]^_`abcdefghijklmnopqSTUVWXYZ^_`abcdefghijklmnopqrstuvwy}~XYZ[\]^_`abcdefghijklmnopq^SUTXWZYVyfeg`_bacdefghijklmh^jiklmnopqrstuvwd~}_a`bcno[\]XYZpqXYZ[\]^_`abcdefghijklmnopqNNone%                                               ONone         PNone    ! " # $ % & $ &    ! " # $ % &QNone '*an abstract syntax function with arguments (1A lambda abstraction. The Int is the variable id. ) Application *-The result of the n:th (0-based) non-terminal +A lambda-bound variable ,A metavariable -Removes all directly and indirectly cyclic productions. FIXME: this may be too aggressive, only one production needs to be removed to break a given cycle. But which one should we pick? FIXME: Does not (yet) remove productions which are cyclic because of empty productions. .VBetter bottom-up filter that also removes categories which contain no finite strings. /FRemoves categories which are not reachable from any external category. 0OMerges categories with identical right-hand-sides. FIXME: handle probabilities 16Keeps only the start category as an external category. 2?Get the sets of mutually recursive non-terminals for a grammar. 3Gets all rules in a CFG. 49Gets all rules in a CFG, grouped by their LHS categories. 5%Gets all categories which have rules. 67Gets all categories which have rules or occur in a RHS. 7&Gets all rules for the given category. 8/Gets all rules for categories in the given set. 9+Clean up CFG after rules have been removed. :Combine two CFGs. ;bCheck if any of the categories used on the right-hand side are in the given list of categories. <oCheck if all the rules are right-linear, or all the rules are left-linear, with respect to given categories. =.Checks if a context-free rule is right-linear. >-Checks if a context-free rule is left-linear. ?DChecks if a symbol is a non-terminal of one of the given categories.F @ A B C D E F G ' ( ) * + , H I J K L M N O P Q R S T U - . / 0 1 V 2eIf true, all categories will be in some set. If false, only recursive categories will be included. W X Y Z [ 3 4 5 6 7 8 \ ] 9 : ^ _ ` a b c d e ; f g < =The categories to consider%The rule to check for right-linearity >The categories to consider$The rule to check for left-linearity h i j k ? lF @ A B C D E F G ' ( ) * + , H I J K L M N O P Q R T S U - . / 0 1 V 2 W X Y Z [ 3 4 5 6 7 8 \ ] 9 : ^ _ ` a b c d e ; f g < = > h i j k ? l6 @ A B C D E F G ' ( ) * + , H I J K L M N O P Q R S T U - . / 0 1 V 2 W X Y Z [ 3 4 5 6 7 8 \ ] 9 : ^ _ ` a b c d e ; f g < = > h i j k ? lR Gleb Lobanov (experimental) (portable)None m n o p q r s t u v w x y z { | } ~   G ' ( ) * + , R T S q r s t u w x v y z { | } ~   m n o p q r s t u v w x y z { | } ~  SAR(stable) (portable)None    TAR(stable) (portable)None Ncompare answer to the list of right answers, increase score and give feedback    UunstableNone9S[\]^ !"%&'()_`abcdefg     1-/02.34567ijklmn#opqrstuvw:;<=x$yz{|HIJKLMNOPQRSTUVWXYZ[\]^}~_`abcdefghijklmnFGEosrpqtuvwxyz{|~}./ABG0123456789:;<=>?@^_`abcijklS~TUVWVNone   WNone   XNone   YPeter LjunglfNone&  #   ZPeter LjunglfNone:                     [None                                  \AR(stable) (portable)None tbIdentifiers are stored as UTF-8-encoded bytestrings. (It is also possible to use regular Haskell @s, with somewhat reduced performance and increased memory use.)uthe constructors labelled INTERNAL: are internal representation never returned by the parser !0raw identifier after parsing, resolved in Rename "wildcardLbelow this constructor: internal representation never returned by the parser #INTERNAL variable $INTERNAL argument of cat at position %INTERNAL* argument of cat with bindings at positionv Module names~XThis function should be used with care, since the returned ByteString is UTF-8-encoded.to mark argument variablesused in lin defaultsrefreshing variables)t & 'u ! " # $ %vwx ( )yz{|}~ * + , - .tuvwxyz{|}~!t & 'u ! " # $ %vwx ( )yz{|}~ * + , - .]NoneB / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  Y > G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  2 / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H IN J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  ^ kr.angelov(stable) (portable)None9 9 9 _None2 BPretty print atomically (i.e. wrap it in parentheses if necessary) Patterns  Expressions Type expressions ,A type constructor applied to some arguments Top-level declarations6                           ! " # $ % & ' ( ) * + , - .-                           ! " # $ %                                 ! " # $ % & ' ( ) * + , - .`None#SISR Working draft 1 April 2003 >http://www.w3.org/TR/2003/WD-semantic-interpretation-20030401/ :Pretty-print the options that are preserved in .gfo files. :Pretty-print the options that are preserved in .pgf files. /Option descriptionsThis is for bacward compatibility. Since GHC 6.12 we started using the native Unicode support in GHC but it uses different names for the code pages. 0 1 2 3 4list of string argumentslist of string arguments      5 / 6 7 8 9 : ; < = > ? @ A B C D E F G H     = 0& 1 2 3 4      5 / 6 7 8 9 : ; < = > ? @ A B C D E F G Ha Aarne Ranta(stable) (portable)None Ithe main function J-Gets the element category of a list category. K L M I Module name. N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a J b c I K L M I N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a J b cbAR(stable) (portable)None[( record label+0to guide computation and type checking of tables,%received from parser; can be anything-$type annontated, but can be anything.expanded/.just one wild card pattern, no need to expand d<Measured pattern (paired with the min & max matching length)0Patterns1constructor pattern:  C p1 ... pn C 2package constructor pattern:  P.C p1 ... pn P.C 3variable pattern: x4wild card pattern: _5record pattern:  {r = p ; ...} -- only concrete6string literal pattern: "foo" -- only abstract7integer literal pattern: 12 -- only abstract8float literal pattern: 1.2 -- only abstract9type-annotated pattern:as-pattern: x@p;.placeholder for pattern for implicit argument {p}<inaccessible pattern=negated pattern: -p>disjunctive pattern: p1 | p2?sequence of token parts: p + q@sequence of token parts: p + qArepetition of token part: p*Bstring of length one: ?Ccharacter list: ["aeiou"]GvariableHconstantI constructorJ basic typeKinteger literalLfloating point literalMstring literal or token: "foo"Nthe empty string []O application: f aP abstraction: x -> bQmetavariable: ?i (only parsable: ? = ?0)R"placeholder for implicit argument {t}Sfunction type:  (x : A) -> B, A -> B, ({x} : A) -> BTtype-annotated term9below this, the constructors are only for concrete syntaxU!example-based term: @in M.C "foo"V record type: { p : A ; ...}W record: { p = a ; ...}X projection: r.pY extension:  R ** {x : A} (both types and terms)Z table type: P => A[ table: table {p => c ; ...}\!table given as course of values: table T [c1 ; ... ; cn]] selection: t ! p^local definition: let {t : T = a} in b_!qualified constant from a package`$qualified constructor from a packageaconcatenation: s ++ tbagglutination: s + tc"pattern (in macro definition): # pdpattern type: pattern Te!boxed linearization type of Identf!boxed linearization of type Identg&ad hoc overloading generated in Renameh alternatives in free variation: variants { s ; ... }ialternatives by prefix: pre {t ; s/c ; ...}jconditioning prefix strings: strs {s ; ...}k%error values returned by Predef.errorp#the constructors are judgements in abstract syntax (ABS) resource (RES)concrete syntax (CNC)and indirection to module (INDIR)q(ABS) context of a categoryr(ABS+) type, arrity and definition of a functions(RES5) the second parameter is list of all possible valuest(RES+) to mark parameter constructors for lookupu(RES)v(RES) idents: modules inheritedw(CNC) lindef ini'zed, x(CNC) type info added at TCy(INDIR) the N says if canonicalencoding the type of the moduleModules;A grammar is a self-contained collection of grammar modulesinitial dependency listall dependenciesGselect just those modules that a given one depends on, including itselfIall modules that a module extends, directly or indirectly, with restricts the same as , plus that an instance extends its interface,we store the module type with the identifier=don't generate code for interfaces and for incomplete modules-interface and "incomplete M" are not complete8all abstract modules sorted from least to most dependent4the last abstract in dependency order (head of list)all resource modules)the greatest resource in dependency order"all concretes for a given abstract%all concrete modules for any abstract !"#$%&'()*+,-./ d0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ e f[\]z{|}~   v !"#$%&'()*+,-./02:;<13456789=>?@ABCDEFhWa]_QXNZk[IPKOGHJLMRSTUVY\^`bcdefgijlmnopwxqrstuvyz{|}~B !"#$%&'()*+,-./ d0123456789:;<=>?@ABCDEF%GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop qrstuvwxyz{|}~  e fcNone g h i j k l m n o p q r s t u v w x y z { | } ~  ^jF g h i j k l m n o p q r s t u v w x y z { | } ~   g h i j k l m n o p q r s t u v w x y z { | } ~  dNone Predefined functions %Show | Read | ToStr | MapStr | EqVal 3Self-contained (not quite) representation of values= <     eNone9;    fAR(stable) (portable)None    gNone   hKrasimir Angelov  (stable)  (portable) None:%           x!           iAR(stable) (portable)None default linearization typerefreshing variables!trying to preserve a given symbol*quick hack for refining with var in editor%create a terminal for concrete syntax!create a terminal from identifier &to define compositional term functions!&to define compositional term functions(;to gather ultimate cases in a table; preserves pattern list)Cto get a string from a term that represents a sequence of terminals*Vto print an Str-denoting term as a string; if the term is of wrong type, the error msg- to find the word items in a term1Hdependency check, detecting circularities and returning topo-sorted liste      !"#$%&'()*+,-./0123e      !"#$%&'()*+,-./0123e      !"#$%&'()*+,-./0123jNone!                    ! " # $ % & ' (!                    ! " # $ % & ' (                     ! " # $ % & ' (kAR(stable) (portable)NoneV[\]xz{|}~   tuvwxyz{|}~  !"#$%&'()*+,-./02:;<13456789=>?@ABCDEFhWa]_QXNZk[IPKOGHJLMRSTUVY\^`bcdefgijlmnopwxqrstuvyz{|}~       !"#$%&'()*+,-./0123lNone ) * ) * ) *mAR(stable) (portable)None% + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O , / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? B E G I L + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N OnAR(stable) (portable)None P Q R S T U V W X Y Z R P Q R S T U V W X Y ZoAR(stable) (portable)None [ \ ] ^ _ [ \ ] ^ [ \ ] ^ _pAR(stable) (portable)None `returns the original p" and the module where it was found athis is needed at compile time bthis is needed at compile time c d e f g h i j k l ` m n o p q a b r s e h i j k l ` m n o p q a b r s c d e f g h i j k l ` m n o p q a b r sqNone t u v w x y z { | } ~   t t u v w x y z { | } ~  rAR(stable) (portable)None:   sNone   tAR(stable) (portable)None CEstimate the minimal length of the string that a pattern will match CEstimate the maximal length of the string that a pattern will match   uNone 9Convert operators once, not every time they are looked up ?Insert a call to the trace function under the top-level lambdas 'Computing the value of a top-level term Computing the value of a term Dto get a string from a value that represents a sequence of terminals Convert a value back to a termC & <    1 1vNone tGenerate Haskell code for the all concrete syntaxes associated with the named abstract syntax in given the grammar. cGenerate Haskell code for the given concrete module. The only options that make a difference are -haskell=noprefix and -haskell=variants.       wAR(stable) (portable)None Jpartial evaluation of concrete syntax. AR 6/2001 -- 16/5/2003 -- 5/2/2005. .the main function for compiling linearizations &auxiliaries for compiling the resource             xNone                      y (Maintainer)(stable) (portable)None Report a fatal error &warnings should be reversed in the end %Report a nonfatal (accumulated) error 6Turn a fatal error into a nonfatal (accumulated) error *Turn accumulated errors into a fatal error .Run an error check, report errors and warnings ;Run an error check, report errors and (optionally) warnings lAugment error messages with a relative path to the source module and an contextual hint (which can be left )    ! " # $ % & ' (  )  *      + , - .  / 0 1 2  '  )  *      + , - .      ! " # $ % & ' (  )  *      + , - .  / 0 1 2zAR(stable) (portable)None 3Dthis gives top-level access to renaming term input in the cc command 4Avars not needed in env, since patterns always overshadow old vars 5 6 7 3 8 9 : ; < = > ? @ A 4 B 3 8 5 6 7 3 8 9 : ; < = > ? @ A 4 B{AR(stable) (portable)None C,invariant way of creating TCEnv from context C D E F G H I J K L M J K L M C D E F G H I J K L M|None N]Invariant: if the third argument is (Just rho), then rho is in weak-prenex form O5Invariant: the second argument is in weak-prenex form P*Invariant: tv1 is a flexible type variable Q=Instantiate the topmost implicit arguments with metavariables RBBuild fresh lambda abstractions for the topmost implicit arguments S9Quantify over the specified type variables (all flexible) TiThis function takes account of zonking, and returns a set (no duplicates) of unbound meta-type variables UaThis function takes account of zonking, and returns a set (no duplicates) of free type variables V%Eliminate any substitutions in a termG W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z N O { | } ~  P Q R S T U V  h i? W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z N O { | } ~  P Q R S T U V }None (light-weight substitution for dep. types .compositional check/infer of binary operations   ~AR(stable) (portable)None 8checking is performed in the dependency order of modules lGeneral Principle: only Just-values are checked. A May-value has always been checked in its origin module. =for grammars obtained otherwise than by parsing ---- update!!  linearization types and defaults   AR(stable) (portable)None @combine a list of definitions into a balanced binary search tree Orebuilding instance + interface, and "with" modules, prior to renaming. AR 24102003 When extending a complete module: new information is inserted, and the process is interrupted if unification fails. If the extended module is incomplete, its judgements are just copied. @this is what happens when matching two values in the same module   None /023459:;<=?@ABDFIJKNOQRT       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ >            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 9  9 None  AR(stable) (portable)None9Was: ,newtype IOE a = IOE { appIOE :: IO (Err a) }B"extends the search path with the > and ?5 environment variables. Returns only existing paths.L$Catch exceptions caused by calls to  or  in the  monad. To catch all  exceptions, use   instead.MGPrint the error message and return a default value if the IO operation sQRBecause GHC adds the confusing text "user error" for failures caused by calls to .:Make raise and handle mimic behaviour of the old IOE monad%456789:;#the directory portion of a pathname<=>?@ABCDEFGHIJKLMNOPQRSTU%Q487569:;<=>?@ABCDEFGHIJKLMNOPQRSTU!456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUNone8macro definition applications: replace ?i by (exps !! i)return the trees to be sent in pipe, and the output possibly printed interpret :: CommandEnv -> [Expr] -> Command -> SIO CommandOutputLanalyse command parse tree to a uniform datastructure, normalizing comm name  None:Krasimir Angelov(stable) (portable)None9;<=OTThe ProtoFCat represents a linearization type as term schema. The annotations are as follows: the strings are annotated with their index in the PMCFG tuple, the parameters are annotated with their value both as term and as index.Path into a term or term schema Term schemabacktracking for all variants@backtracking for all parameter values that a variable could take[the argument should be a parameter type and then the function returns all possible values.G      !" 9      !"None:#$%&'()*+,-./0##$%&'()*+,-./0None123451512345Krasimir Angelov  (stable)  (portable) None[*Read just the module header, the returned  will have an empty body6like W: but adds file name to error message if there was an error7gAdds file name to error message if there was an error, | but laziness can cause errors to slip through VWXY89Z[\67:;<=>?@ABCDEFGHIJKLMNVWXYZ[\VWXY89Z[\67:;<=>?@ABCDEFGHIJKLMNAR(stable) (portable)NoneOReturns a list of all files to be compiled in topological order i.e. the low level (leaf) modules are first. getAllFiles :: (MonadIO m,ErrorMonad m) => Options -> [InitPath] -> ModEnv -> FileName -> m [FullPath]P5options can be passed to the compiler by comments in --#Z, in the main file getOptionsFromFile :: (MonadIO m,ErrorMonad m) => FilePath -> m OptionsQRSTUVWOXYZ[\]^_`PabVWXYVWOXYZ\^PaQRSTUVWOXYZ[\]^_`PabAR(stable) (portable)None]WRead a source file and parse it (after applying preprocessors specified in the options)cdef]^_ghijklmno]^_ cdef]^_ghijklmnoNonebACompile a given source file (or just load a .gfo file), given a - containing everything it depends on. Calls c or d.c`Read a compiled GF module. Also undo common subexp optimization, to enable normal computations.dNCompile GF module from source. It both returns the result and stores it in a .gfo, file (or a tags file, if running with the -tags option) p`abcdqrstu`abcd p`abcdqrstuNonevThe environmente/Compiles a number of source files and builds a / structure for them. This is a composition of f and h.fLink a grammar into a  that can be used to  and  with the PGF run-time system.gRReturns the name of the abstract syntax corresponding to the named concrete syntaxh_Compile the given grammar files and everything they depend on. Compiled modules are stored in .gfo files (unless the -tagsL option is used, in which case tags files are produced instead). Existing .gfo= files are reused if they are up-to-date (unless the option -src aka  -force-recomp is used).wcompile with one module as starting point command-line options override options (marked by --#) in the file As for path: if it is read from file, the file path is prepended to each name. If from command line, it is used as it is. vefghw4Options from program command line and shell command.xyzefgh vefghwxyzNone{|}~{}{|}~NoneiECompile the given grammar files and everything they depend on, like  batchCompileL. This function compiles modules in parallel. It keeps modules compiled in present and  alltenses mode apart, storing the .gfo files in separate subdirectories to avoid creating the broken PGF files that can result from mixing different modes in the same concrete syntax.The first argument controls the number of jobs to run in parallel. This works if GF was compiled with GHC>=7.6, otherwise you have to use the GHC run-time flag  +RTS -N -RTS to enable parallelism.iiiNone9:;If the Monad m superclass is included, then the generic instance for monad transformers below would require UndecidableInstances Run normally Redirect  to the given handleCapture !NoneNoneNone       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW     487569:;<=>?@ABCDEFGHIJKLMNOPQRSTU         "#$%RQ)+*&'( ,-./0132456789:;<=>?@ABCDEFGHIKL!JPOMN=<;:>?@ABCDEFGHIJK9LMNO45678PQRSTUQ  STUVWNoneThe make_fa algorithm from "Regular approximation of CFLs: a grammatical view", Mark-Jan Nederhof, Advances in Probabilistic and other Parsing Technologies, 2000.,Build a DFA by building and expanding an MFA Sort sub-networks topologically.Convert a strongly regular grammar to a number of finite automata, one for each non-terminal. The edges in the automata accept tokens, or name another automaton to use.=The make_fa algorithm from "Regular approximation of CFLs: a grammatical view", Mark-Jan Nederhof, Advances in Probabilistic and other Parsing Technologies, 2000, adapted to build a finite automaton for a single (mutually recursive) set only. Categories not in the set will result in category-labelled edges.Add a state for the given NFA for each of the categories in the given set. Returns a map of categories to their corresponding states.*A map of non-terminals and their automata.VThe set of (mutually recursive) categories for which we are building the automaton.State to come fromSymbols to acceptState to end up in FA to add to. WNoneConcrete syntax nameNoneNone:+An SLF word is a word, or the empty string.&Make a network with subnetworks in SLF@Check if a word should not correspond to a word in the SLF file.'           NoneAAn SRG non-terminal. Category name and its number in the profile.<maybe a probability, a rule name and an EBNF right-hand side grammar namestart category name>The language for which the grammar is intended, e.g. en-UK2Create a compact filtered non-left-recursive SRG. zRenames all external cats C to C_cat, and all internal cats C_X (where X is any string), to C_N where N is an integer.VMerges a list of right-hand sides which all have the same sequence of non-terminals. !"#$%&'()*Concrete syntax name.+,-./0123 G !"#$%&*.3 !"#$%&'()*+,-./0123None 456789:;<=>?5 456789:;<=>?None@ABCDEFGHIJKLMN @ABCEF@ABCDEFGHIJKLMNNoneOPQRSTUVWXYZ[\POPQRSTUVWXYZ[\BB(stable) (portable)None]^_`abcdefghijkl^_]^_`abcdefghijklNone mnopqrstuvrootlanguagewxmn mnopqrstuvwxNoneythe main functionz{y|}~yz{y|}~NonejExport a PGF to the given '. For many output formats, additional # can be used to control the output.nGet the name of the concrete syntax to generate output from. FIXME: there should be an option to change this.j,List of recommended file names and contents.jjNone9;/the maximal number of precompiled quiz problems  Nonek>Compile the given GF grammar files. The result is a number of .gfo) files and, depending on the options, a .pgf file. ( gf-batch, gf-make)l Create a .pgfA file (and possibly files in other formats, if specified in the ) from the output of i. If a .pgfj file by the same name already exists and it is newer than the source grammar files (as indicated by the UTCTime( argument), it is not recreated. Calls n and m.mExport the PGF to the s specified in the  . Calls j.n3Write the result of compiling a grammar (e.g. with  compileToPGF or f) to a .pgf* file. A split PGF file is output if the  -split-pgf option is used.klmnklmnklmnNoneSafeSafeSafeNoneSafeGCreate a new cache that uses the given function to read and parse filesForget all cached objectsJForget cached objects that have been unused for longer than the given timeList currently cached files_Lookup a cached object (or read the file if it is not in the cache or if it has been modified)Like 8, but also return the last modification time of the file  None'     None0 !"#   !"#None$%&'()*+,-./0123456$%&$%&'()*+,-./0123456None7KLexers with a text lexer that tries to be a more clever with the first word8Standard lexers98Unlexing for the C runtime system, &+ is already applied:?Unlex text, skipping the quality marker used by the App grammar;AUnlexing for the Haskell run-time, applying the &+ operator first<,Render trees as JSON with numbered functions=%tabulate all variants and their forms^>?@ABCDEFGHIJKLMNOPQRSTUVW78X9:;YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<= EGLMNORSTX>?@ABCDEFGHIJKLMNOPQRSTUVW78X9:;YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<=22NoneNone Handler monad Combined FastCGI and HTTP serverHTTP request handler6Check that a path is not outside the current directory'Only delete files with these extensions;Remove a directory and the files in it, but not recursively441None9;T o Run the GF Shell in quiet mode (gf-run).pRun the interactive GF ShellqRun the GF Server ( gf-server). The 2 argument is the port number for the HTTP service.2Read end execute commands until it is time to quit(Read and execute one command, returning  to continue execution, | ' when it is time to quitRead a command>Optionally show how much CPU time was used to run an IO action(Execute a given command line, returning  to continue execution, | ' when it is time to quit>Execute a given command line, without adding it to the history(Execute a given command line, returning  to continue execution, | ' when it is time to quitCommands that work on +opqopq!opqNonerLRun the GF main program, taking arguments from the command line. (It calls  and s, then t.) Run  gf --help for usage info.sDGet and parse GF command line arguments. Fix relative paths. Calls  and .t_Run the GF main program with the given options and files. Depending on the options it invokes k, mainGFI,  mainRunGFI,  mainServerGFI(, or it just prints version/usage info.rstrstrstNoned[\]xz{|}~   tuvwxyz{|}~ !"#$%&'()*+,-./02:;<13456789=>?@ABCDEFhWa]_QXNZk[IPKOGHJLMRSTUVY\^`bcdefgijlmnopwxqrstuvyz{|}~      !"#$%&'()*+,-./0123VWXYZ[\]^_`abcdefghijklmnopqrstgrstpoqklnmefhgija`bcd]^_v~pqrstuvwxyFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkonml[\]0123456789:;<=>?@ABCDE+,-./()*'&%$#"!    z{|}~{z}|      !"#$%&'()*+,-./0123xvwxu~tyz|}{VWXY[Z\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] ^ _ ` a b c d e"f"g"h"i"j"k"l"l"m"n"o"p"q"r"s"t"u"v#w#x#y#y#z#{#|#}#~################,,,,,,,,..2G2G2222222222?????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KKKKK     \\\\\ \!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\0\1\2\3\4\5\6`7`8`8`9`:`;`<`=`>`?`@`A`B`C`D`E`F`G`H`I`J`K`L`M`N`O`P`Q`R`S`T`U`V`W`X`Y`Z`[`\`]`^`_```a`b`c`d`e`f`g`h`i`j`k`k`l`m`n`o`p`q`r`s`t`u`v`w`x`y`z`{`|`}`~````````````````````````````````````````````````````````````````````bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb b b b b bbbbbbbbbbbbbbbbbbbbbb b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0b1b2b3b4b5b6b7b8b9b:b;b<b=b>b?b@bAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb[b\b]b^b_b`bahbhchdhehfhghhhihjhkhlhmhnhoipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii                       ! ! " # $ $  %   & ' ( ( ) * + , - .   / 0 1 1 2 3 4 ? ? 5 B 6 7  ,  8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R STUVWXYZ[\]^_`abcdefghgijklmnopqrstuvwxyz{|}~j4367     vur: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIIJKLMNOPPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{| } } ~       !!!!!!!!!!!!""""""""""""""""""""""" """"""""""""####################################################################$$$$$$$$$$$$$$$$$$$$%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%&'&'(&')&'*&'+&',&',&'-&'.&'/&'0&12&1V&13&4&5&6&7&8'9':';'<'=(>(?)@)A)B)C)D)E+F+G+H+I+J+K+L+M+N+OPQRPQSPQTPQUPQVPQWPQXPQYPQZPQ[PQ\PQ]PQ^PQ_PQ`PQaPQbPQcPQdPQePQfPQgPQhPQiPQjPQkPQlPQmPQnPQoPQpPQqPQrPQsPQtPQuPQvPQwPQxPQyPQzPQ{PQ|PQ}PQ~PQPQPQP,,---/00000000000000000000000000000000000000000011112111111111111111111111112223333333333333333333333333333666666666666667777X77777g 7 7 7 7 77777777H777777777777 7!7"7#77$7%7&8'8(8)8*8+8,888-8.8/8081828384959969999798999:9;9<9=9>9?9@:A:B:C:D:E:F:G:H:I:J:K:L:M:N:OPQPR:S::T:U:V:W:X:Y:Z:[:\:]:^:_:`:a:b:c:d:e;f;';g;g;h;h;i;j;k;f;l;m;n;o;p;q;r;s;t;u;v;w;x;y;z;{;|;};~;;;<<<<<<<<<<<<ge<<g<h<f<f<<<<<<<<<<<<<<<<==============================================>>>>>>>>>>>>>>>>>>>>>>>>>>>g?????@@AAAAAAAAAAAAAAAA  C C C C CCCCCCCCCCCCCCCCCCEEEEE E!E"E#E$E%E&E'E(E3E)E*E+E,E-E.E/E0E1E2E3E4E5E6E7E8E9E:EE;EE EoE<E=E>E?E@EAEBECEDEEEFFGHIJFKFVHLVFWHLWFMHLMFNHOJHLPFQFRFSFTFUFVFWFXFYFZF[F\F]F^F_F`FaFbFcFcFGFdFeFfFgFhFiFjFkFlIImInIoIpIRIqIrIsIYIZI[I\I]I^I_I`IaIbIItIuIuIvIwIxIyIzI{J|J|J}J}J~J~JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJK KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL L L L L MFMMMM M MM M M M M M M M M M M M M M M M M M M N NN N N N N N N N N !NN "N #N $N %N &NN 'N (N )N *N +N ,N -N .N /N 0N 1NN 2N 3N 4N 5N 6N 7N 8O 9O :O ;P <P =P >P ?P @P AP BP CP DP EQ FQ GQ HQ IQ JQ KQ LQ QQ MQ NQ OQ PQ QQ RQ SQ TQ UQ VQ WQ XQ YQ ZQ [Q \Q ]Q ^Q _QQ `Q aQ bQ cQ?Q?Q dQ eQ fQ gQ gQ hQ iQ jQQ kQ lQQ mQ nQ oQ pQ qQ rQ sQ tQ uQ vQ wQ xQ yQ zQ {Q |Q }Q ~Q Q Q Q Q R R R R R R R R R R R iR jR R R R R R R R R R R R R R R R R S S S S S S S S S S S S SS S S S S S S S S S S S S S S S S S S T T T T T T T V V V V V V V V V W W W W W W W W W W W W W W X X XXX X X X X X XtXuXX X X X X X X Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z [ [ [ ![ "[ #[ $[ %[ &[ '[ ([ )[ *[ +[ ,[ -[ .\ /\ 0\ 1\ 2\ 3\9\ 4\ 5\ 6\ 7\ 8\ 9\ :\ ;] <] =] <] >] ?] @] ?] A] B] C] D] E] F] G] H]]] I] J] K] L] M] N] O] P] Q]0] R] S] T] U] V] W] X] Y] Z] [] \] ]] ^] _] `] a] b] c] d] e] f] g] h] i] j] k] l] m] n] o] p] q] r] s] t] u] v] w] x] y] z] {] |] }] ~] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] 6] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ _ _ _ _ _ _ _ _ _ _8_ _ _ _7_ __ _ _ _ _ _ _ __ __ _ _ ___)_ _ _ _ _ _ _ _ _ _ _ _ !_ "_ #_ $_ %_ &_ '_ (_ )_ *_ +` ,`7` -` .` /` 0` 1` 2` 3` 4` 5` 6` 7` 8`` 9` :` ;` <` =`` >` ?` @` A` Ba Ca Da Ea Faa Ga Ha Ia Ja Ka La Ma Na Oa Pa Qa Ra Sa Ta Ua Va Wa Xa Ya Za [a \b ]b ^b _c `c ac bc cc dcc ec fc gcc hc ic jc jc kc lcc mc nc oc pc qc rc sc tc uc vc wd xddd yd zd {d |d }d ~d d d d dd d d d d d d d d d d ddddddd d d d dd ddd d d fd d d dd d d d d d d d d d d d d d d e e e e e e e e e e e e e e e e e e e f f f ff fff f f f f f f f f g g g g g g g g g g g g g g h h h h h;h h h h h hh h hh h h h h h h h h j j j j j jj j j j j j j j j j j j j j j j j j j j j j j j j j j l l m m m m m m m m m m m m m m m m m m m m m m mDm mmm m[m m m !m "m #m $m %m &m 'n (n )n *n +n ,n -n .n /n 0n 1n 2o 3o 4o 5o 6o 7p 8pZp 9p :p ;p <p =p >p ?p @p Ap Bp Cp Dp Ep Fp Gp Hp Ip Jq Kq Lq Mq Nq Oq Pq QqEq Rq Sq Tq Uq Vq Wq Xr Yr Zr [r \r ]r ^r _r `r ar bs cs ds es fs gs hs is js ks ls ms ns ot pt qt rt st tt ut vt wt xt yt zt {t |t }u ~u u u u u u u u u u u u u u u u u u u uu uu u u u -u u u u u u u u u u u u u u uHuu u u u u u u u u u u u u u u u u u u u uu u u v v v Gv v v v v v v v v v v v v v v v v v v v v v w w w w w w w w wx x x x x x x x y y y y y y y y y y y y y y y y y -yy y y y y y y y y y y y z z z z z z z z z z z z z z z z { { { { { { { { { { { | | | | | | | | | | !| "| #|I|I|J| $| %| &|O|K| '| (| )| *| +|P| ,| -| .| /| 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| :| ;| <| =| >| ?| @| A| B| ,| C| D| E| F|X|]|_|`| G|U|V| H| I| J| K| L| M| N|v|||{} O} P} Q} -} R} ,} S} T} U} V}t} W~ X~ Y~ Z~ [~ \~ ] ^ _ ` a b c d e f g h i i j k l m m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxygz{|}~   W   2dcf      !"##$%%&'()*+,-./0123456789:;<=>??@ABCDEFGHIJKLLM@NOPQRST -UVWXYZ[\]^_`abcdeffghhijklmnopqrstuvwxyz{|}~]        2 !"#$ %&'()*+,- ./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTRSURSVRSWRSXRSYRSZRS[RS\R]^R]_R]*R]*R`aR`bR`cR`RdeRdeRdfRdgRdhRdiRdiRdjRdkRdlRdmRdnRdopqrpqrpqspqtpqupqvpqvpqwxxyz{|}~   < 77      !"#<$ %&'()*+,-./012-3456789:;<=>?@ABCDEFGHIJ45Kgf-3.9-Iv7dOY2n9Qnpqqbq18fRd GF.Support PGF.UtilitiesPGF.LexingAGreek PGF.Lexing PGF.HaskellPGFGFGF.Text.Pretty URLEncodingSimpleEditor.SyntaxSimpleEditor.JSONPaths_gf Data.Listnub PGF.TrieMapPGF.CIdPGF.Type PGF.ByteCodePGF.ExprPGF.Data PGF.MacrosPGF.Morphology PGF.OptimizePGF.Probabilistic PGF.SortTop PGF.LinearizePGF.TreePGF.Paraphrase PGF.TypeCheckText PrettyPrint PGF.Generate PGF.Forest PGF.ParsePGF.VisualizeTree PGF.PrinterGF.Text.TransliterationsGF.Text.LexingGF.Text.CodingGF.Text.CliticsGF.System.UseSignalGF.System.SignalGF.System.DirectoryGF.System.ConsoleGF.System.ConcurrencyGF.System.CatchGF.System.ProcessGF.JavaScript.AbsJSGF.JavaScript.PrintJSGF.Infra.LocationGF.Infra.GetOptSystem.EnvironmentgetArgsGF.Infra.ConcurrencyGF.Data.Utilities GF.Data.XML GF.Data.StrGF.Data.RelationGF.Data.Graphviz GF.Data.GraphGF.Speech.FiniteStateGF.Speech.RegExp GF.Data.ErrMGF.Data.OperationsGF.Data.BacktrackMGF.Compile.TypeCheck.ConcreteGF.Compile.Multi GF.Compile.Compute.AppPredefinedData.Binary.GetData.Binary.BuilderL BytestringData.Binary.PutData.Binary.IEEE754 Data.Binary PGF.OldBinary PGF.Binary ExampleDemoFoldGF.Compile.ExampleBasedGF.Grammar.CFGGF.Grammar.BNFCGF.Grammar.EBNFGF.Quiz PGF.InternalGF.Command.TreeOperationsGF.Compile.PGFtoJSGF.Compile.PGFtoLPrologGF.Compile.PGFtoPrologGF.Compile.PGFtoPythonGF.Compile.ToAPIGF.Infra.IdentGF.Grammar.LexerGF.Grammar.Predef GF.HaskellGF.Infra.OptionGF.Compile.PGFtoHaskellGF.Grammar.GrammarGF.Command.AbstractGF.Compile.Compute.ValueGF.Compile.Compute.PredefGF.Grammar.ValuesGF.Infra.DependenciesGF.Grammar.PrinterGF.Grammar.MacrosGF.Command.CommandInfo GF.GrammarGF.Compile.TypeCheck.PrimitivesGF.Compile.TypeCheck.TCGF.Grammar.UnifyGF.Grammar.LockfieldGF.Grammar.LookupGF.Compile.GenerateBCGF.Compile.SubExOptGF.Grammar.AnalyseGF.Grammar.PatternMatchGF.Compile.Compute.ConcreteNewGF.Compile.ConcreteToHaskellGF.Compile.OptimizeGF.Grammar.ShowTermGF.Infra.CheckMGF.Compile.RenameGF.Compile.TypeCheck.Abstract GF.Compile.TypeCheck.ConcreteNewGF.Compile.TypeCheck.RConcreteGF.Compile.CheckGrammarGF.Compile.UpdateGF.Grammar.ParserGF.Command.ParseGF.Infra.UseIOGF.Command.InterpreterGF.Compile.CFGtoPGFGF.Compile.GeneratePMCFGGF.Compile.GrammarToPGFGF.Compile.TagsGF.Grammar.BinaryGF.Compile.ReadFilesGF.Compile.GetGrammar GF.CompileOne GF.Compile linearizeparseGF.Command.ImportingGF.CompileInParallel GF.Infra.SIOGF.Command.CommonCommandsGF.Command.SourceCommandsGF.Speech.CFGToFAGF.Speech.PGFToCFGGF.Speech.PrRegExp GF.Speech.SLF GF.Speech.SRG GF.Speech.GSLGF.Speech.SISRGF.Speech.JSGFGF.Speech.SRGS_ABNFGF.Speech.SRGS_XMLGF.Speech.VoiceXMLGF.Compile.ExportGF.Command.Commands GF.CompilerSimpleEditor.ConvertDarcsVersion_gfGF.Infra.BuildInfoGF.Command.MessagesGF.Command.HelpCacheCGICGIUtilsExampleService PGFServiceRunHTTP GF.ServerGF.InteractiveGF.MainbaseControl.Monad.IO.ClassliftIOMonadIOnub'replace lexTextAGreeklexTextAGreek2unlexTextAGreek isAGreekPunct lexAGreek lexAGreek2 unlexAGreek normalize fromAGreek denormalizetoAGreektoGravetoAcute isAGreekVowel enclitics proclitics isEnclitic isProclitic wasEnclitic wasProclitic getEnclitic getProclitic dropAccentdropLastAccentaddAcute hasEndAcute hasEndCircumhasPrefinalAcutehasSingleAccent hasAccentenclitics_explslexTextlexText' unlexTextbindToklexCode unlexCode lexLatexCodelexMixed unlexMixed capitInit uncapitInitunquoteisPunct isMajorPunct isMinorPunctisParen isClosingR_sHas_sproj_sPrefixTokTKTPBIND SOFT_BIND SOFT_SPACECAPIT ALL_CAPITStrEnumAllenumAlltablefromStrto_R_s+++!!$!* $fHas_sR_st $fEnumAllR_s$fEqTok$fOrdTok $fShowTok$fEqR_s$fOrdR_s $fShowR_sCIdwildCIdmkCIdutf8CIdreadCIdshowCIdpIdentppCIdBindTypeExplicitImplicitExprHypoTypereadTypeshowTypemkTypemkHypo mkDepHypo mkImplHypounTypeTreereadExprshowExprmkAbsunAbsmkAppunAppmkStrunStrmkIntunIntmkDoubleunDoublemkMetaunMetapExprppMetaLanguageSeqIdFunIdSequenceLIndexFIdToken readLanguage showLanguageBracketedStringLeafBracket missingLins showPrintNameshowBracketedStringflattenBracketedStringMorphoAnalysisLemma buildMorpho lookupMorpho isInMorphofullFormLexicon morphoMissing morphoKnown ProbabilitiesshowProbabilitiesreadProbabilitiesFromFilemkProbabilitiesdefaultProbabilitiessetProbabilitiesprobTreerankTreesByProbs linearizeAlllinearizeAllLangbracketedLinearizetabularLinearizes paraphraseTcError UnknownCat UnknownFun WrongCatArgs TypeMismatch NotFunTypeCannotInferTypeUnresolvedMetaVarsUnexpectedImplArgUnsolvableGoal ppTcError checkType checkExpr inferExpr generateAllgenerateAllDepth generateFromgenerateFromDepthgenerateRandomgenerateRandomDepthgenerateRandomFromgenerateRandomFromDepth ParseState ParseOutput ParseFailed TypeErrorParseOkParseIncomplete ParseInputpiToken piLiteral initStatesimpleParseInput mkParseInput nextStategetCompletionsrecoveryStatesgetParseOutputgetContinuationInfo CncLabelsLabelsGraphvizOptionsnoLeavesnoFunnoCatnoDepnodeFontleafFont nodeColor leafColor nodeEdgeStyle leafEdgeStylegraphvizDefaultsgraphvizAbstractTreegraphvizDependencyTree getDepLabelsgraphvizParseTreegraphvizParseTreeDepgraphvizBracketedString gizaAlignmentgraphvizAlignmentconlls2latexDocgetCncDepLabelsPrettyppppListrender renderStyle$$$+$<+><>bracesbracketscat doubleQuotesfcatfsephanghcathsepnestparens punctuatequotessepvcat $fPretty[] $fPrettyChar$fPrettyDouble $fPrettyFloat$fPrettyInteger $fPrettyInt $fPrettyDoc TermColorsredFgblueFgrestoresetConsoleEncodingchangeConsoleEncoding getTermColorscatchtryLocationNoLocLocalExternal HasSourcePath sourcePathunLocnoLoc ppLocationppLErrOkBaderrfromErr ErrorMonadraisehandlehandle_BinTreeifNullmaybeErrtestErrerrIn lookupErr mapPairListM mapPairsMpairM checkUnique unifyMaybe unifyMaybeBy emptyBinTree isInBinTree lookupTreelookupTreeManyAll updateTree buildTreemapTree filterBinTree tree2listindent++-+++++++-+++++prUpper prReplicateprTListprQuotedString prParenthprCurly prBracket prArgList prSemicList prCurlyListrestoreEscapesnumberedParagraphs prConjList prIfEmpty wrapLines combinationstopoTest topoTest2iterFixchunks readIntArgdoneliftErrchecksBinaryencodedecode encodeFile decodeFileTrieOthApATreeOtherAppreadPGFparseAll parseAllLangparse_parseWithRecovery groupResults abstractName languages languageCode categoriescategoryContextstartCat functionsfunctionsByCat functionTypecomputebrowsetoATreetoTrie $fShowATree $fShowTrieRawIdentIdent ModuleNameMN moduleNameS rawIdentS rawIdentC showRawIdentprefixRawIdent isPrefixOf ident2utf8 ident2raw showIdentidentS prefixIdentidentCidentVidentAidentAVidentWargIdent isArgIdent getArgIndexvarStrvarX isWildIdentvarIndexOptionsFlagsoptModeoptStopAfterPhase optVerbosityoptShowCPUTimeoptOutputFormatsoptSISRoptHaskellOptionsoptLexicalCatsoptLiteralCats optGFODir optOutputDir optGFLibPathoptDocumentRoot optRecomp optProbsFileoptRetainResourceoptNameoptPreprocessors optEncodingoptPMCFGoptOptimizationsoptOptimizePGF optSplitPGFoptCFGTransformsoptLibraryPath optStartCatoptSpeechLanguageoptLexer optUnlexer optWarningsoptDump optTagsOnlyoptHeuristicFactoroptCaseSensitive optPlusAsBindoptJobsoptTraceRecomp AlwaysRecomp RecompIfNewer NeverRecompPassSourceRebuildExtendRename TypeCheckRefreshOptimizeCanonDump HaskellOptionHaskellNoPrefix HaskellGADTHaskellLexicalHaskellConcreteHaskellVariants CFGTransformCFGNoLR CFGRegularCFGTopDownFilterCFGBottomUpFilterCFGStartCatOnlyCFGMergeIdenticalCFGRemoveCycles OptimizationOptStemOptCSE OptExpandOptParametrize SISRFormatSISR_WD20030401SISR_1_0 OutputFormat FmtPGFPretty FmtJavaScript FmtPython FmtHaskell FmtPrologFmtLambdaProlog FmtByteCodeFmtBNFFmtEBNF FmtRegularFmtNoLR FmtSRGS_XMLFmtSRGS_XML_NonRec FmtSRGS_ABNFFmtSRGS_ABNF_NonRecFmtJSGFFmtGSL FmtVoiceXMLFmtSLF FmtRegExpFmtFAPhasePreprocConvertCompileLink VerbosityQuietNormalVerboseDebugMode ModeVersionModeHelpModeInteractiveModeRunModeInteractive2ModeRun2 ModeCompiler ModeServer helpMessage parseOptionsparseModuleOptionsfixRelativeLibPaths optionsGFO optionsPGFflag addOptions noOptions concatOptions modifyFlags getEncodingdefaultEncodingoutputFormatsExplrenameEncodingreadOutputFormat verbAtLeastdump cfgTransform haskellOption isLiteralCat isLexicalCatsetOptimizationsetCFGTransform SubstitutionAlternParamLocalDefCaseAssign LabellingEquationContextMetaIdLabelLIdentLVarTInfoTRawTTypedTCompTWildPattPCPPPVPWPRPStringPIntPFloatPTPAsPImplArgPTildePNegPAltPSeqPMSeqPRepPCharPCharsPMacroPMTermVrCnConSortEIntEFloatKEmptyAbsMetaImplArgProdTypedExampleRecTypeRPExtRTableTVSLetQQCCGlueEPatt EPattTypeELincatELin AdHocOverloadFVAltsStrsErrorQIdentFunCatInfoAbsCatAbsFunResParamResValueResOper ResOverloadCncCatCncFunAnyIndPMCFG Production ModuleStatus MSComplete MSIncompleteOpenSpecOSimpleOQualifMIncludeMIAllMIOnlyMIExcept ModuleType MTAbstract MTResource MTConcrete MTInterface MTInstance SourceModInfo SourceModule SourceGrammar ModuleInfoModInfomtypemstatusmflagsmextendmwithmopensmexdepsmsrcmseqsjmentsModuleGrammar moduleMapmodulesextends isInherited inheritAll openedModule depPathModule allDepsModule partOfGrammar allExtendsallExtendsPlus prependModule emptyGrammarmGrammarabstractOfConcrete lookupModuleisModAbsisModResisModCnc sameMTypeisCompilableModuleisCompleteModule allAbstractsgreatestAbstract allResourcesgreatestResource allConcretesallConcreteModulesvarLabel tupleLabellinLabel theLinLabel ident2label label2ident TermPrintQualTerse Unqualified QualifiedInternalppModule ppJudgementppTermppPattppValue ppConstrsppQIdentppParamsgetAbstypeForm typeFormCncvalCatvalType valTypeCnc typeSkeleton catSkeleton funsToAndFromisRecursiveTypeisHigherOrderType contextOfTypetermForm termFormCncappForm mkProdSimplemkProdmkTermappConsmkLet mkLetUntyped isVariableuTypeassignassignTunzipRmkAssign projectRec zipAssign mapAssignM mkRecordNmkRecord mkRecTypeN mkRecType record2substtypeType typePTypetypeStrtypeToktypeStrs typeStringtypeInt typeFloattypeInts typePBool typeError isTypeIntsisPredefConstantcheckPredefErrorcnPredef mkSelectsmkTablemkCTable eqStrIdent tuple2recordtuple2recordTypetuple2recordPattmkCases mkWildCases mkFunType plusRecType plusRecord defLinType mkFreshVar mkFreshVarX maxVarIndex mkFreshVars freshAsTerm string2termint2term float2termident2terminal symbolOfIdentsymid justIdentOf linTypeStrlinAsStr term2patt patt2term composSafeOpcomposOpcomposSafePattOp composPattOp collectOp mconcatMap collectPattOp redirectTerm allCaseValues strsFromTermstringFromTerm getTableTypechangeTableType wordsInTermnoExistdefaultLinTypesortRecallDependenciestopoSortJmentstopoSortJments2OutputePutStr ePutStrLnputStrE putStrLnEIOEFullPathInitPathFileName putIfVerb gfLibraryPathgfGrammarPathVargetLibraryDirectorygetGrammarPath extendPathEnv getSubdirsjustModuleNameisGFisGFOgfFilegfoFilegf2gfogf2gfo'splitInModuleSearchPathtryIOEuseIOEmaybeIOdie putPointE ioErrorTexttimeIt writeUTF8FilereadBinaryFilewriteBinaryFile VersionTaggedTagged WrongVersionunV decodeModuledecodeModuleHeader encodeModulegetSourceModule getBNFCRules getEBNFRulesCompiledModule OneOutput compileOnereuseGFO useTheSource compileToPGFlink srcAbsName batchCompileparallelBatchCompile exportPGFmainGFC linkGrammars writeOutputswritePGF mainRunGFImainGFI mainServerGFImain getOptionsmainOptsurlDecodeUnicode decodeQueryQueryabothfromhex4fromhex2unfoldrchopListbreakAtLhsLinfunargslinOperonameorhsLincatlintypepnameprhsConcretelangcodeopensparamslincatsoperslinsfnameftypeAbstractstartcatcatsfunsbasenameabstract concretesModIdId signature definition.= $fJSONLin $fJSONLincat$fJSONConcrete $fJSONOper $fJSONParam $fJSONFun$fJSONAbstract $fJSONGrammarcatchIOversionbindirlibdir dynlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameTrieMapTrempty singletonlookupnullcompose decompose insertWithunion unionWithunions unionsWithelemstoList fromListWithfromListmap mapWithKeyGHC.BaseStringNothingpCId insideChar isIdentFirst isIdentRest $fReadCId $fShowCIdDTyppType pHypoBindspAtomppTypeppHypoLStrLIntLFltTailInfoRecCallTailCall UpdateCallIValHEAPARG_VARFREE_VARGLOBALInstr CHECK_ARGSCASECASE_LITSAVEALLOC PUT_CONSTR PUT_CLOSUREPUT_LITSETSET_PAD PUSH_FRAMEPUSHTUCKEVALDROPJUMPFAIL PUSH_ACCUM POP_ACCUMADD CodeLabelLiteralppLitppCodeppInstrppIVal ppTailInfoppLabelPAppPLitPVarPWildEAbsEAppELitEMetaEFunEVarETypedEImplArg unAppForm normalFormppParens freshNameppExprpBindspArgEnvSigValueVAppVLitVMetaVSuspVGenVConstVClosureVImplArgEqupFactorpTypedpMetapLit pattScopeppBind value2exprevalapply applyValuematch $fReadExpraflagsPArgPApplyPCoercePConstSymbolSymCatSymLitSymVarSymKSSymKPSymBINDSymNE SymSOFT_BIND SymSOFT_SPACESymCAPIT SymALL_CAPITDotPosConcrcflags printnamescncfunslindefslinrefs sequences productions pproductions lproductionscnccatslexicon totalCatsAbstrgflagsabsnameunionPGF msgUnionPGFemptyPGFhaveSameFunsPGF fidStringfidIntfidFloatfidVar isPredefFIdlengthBracketedStringCncTypeLinTable BracketedToknBracket_LeafKSLeafNELeafBIND LeafSOFT_BIND LeafCAPITLeafKP mapConcreteslookTypeisData lookValCat lookStartCatlookGlobalFlag lookAbsFlag lookConcrlookConcrComplete lookConcrFlagfunctionsToCathasLin restrictPGFdepthcftype typeOfHypo contextLengthlookMap cidStringcidIntcidFloatcidVarppBracketedStringuntokn mkLinTable computeSeq collectWordsmorphoClassifymissingWordMsg optimizePGFupdateProductionIndices topDownFilterbottomUpFilterfilterProductionssplitLexicalRulesupdateConcreteCStateProbsfunProbscatProbsgetProbabilities mkProbDefscomputeConstrsp_fp_ik_fk_i arguments showInOrderisArg typesInterm returnCat forExamplefirstLinlinTreeVarLit tree2expr expr2treeprTree patt2treeSubst paraphraseN paraphraseN'fromDefsubstisClosedisLinear lookupVargetVarSelector splitSelectorselectTcMunTcM MetaValueMUnboundMBoundMGuarded MetaStoreScopeTTypeTTyp emptyScope addScopedVarscopeEnv scopeVars scopeSizerunTcM lookupCatHyps lookupFunTypetypeGeneratorsemptyMetaStorenewMetanewGuardedMetagetMetasetMeta lookupMeta addConstrainttcTypetcHypostcHypo tcCatArgstcExprinfExprtcArg appImplArgeqTypeeqExpreqValuecheckResolvedMetaStoregenerateForMetasgenerateForForestevalType refineExpr refineExpr_ refineType refineType_ $fFunctorTcM$fMonadErrorTcErrorTcM$fMonadStatesTcM$fMonadPlusTcM$fAlternativeTcM $fMonadTcM$fApplicativeTcMOntologygenerateOntologygenerateOntologyDepthgenerateproverestart$fSelectorOntology$fSelectorIdentity $fSelector() getAbsTreesForestabstrconcrforestrootlinearizeWithBrackets bracketedTokn isLindefCId foldForest $fSelectorInt ErrorStateEState ContinuationChartactiveactivespassivenextIdoffsetPState PassiveChart PassiveKeyPK ActiveChart ActiveSet ActiveKeyAKActive getPartialSeqprocesspredictupdateAtemptyAClookupAClookupACByFCatlabelsACinsertACemptyPClookupPCinsertPCghc-prim GHC.TypesBooltoSVGAttrsTagNameSVGCharDataElemLengthPositionSize UnitLengthMMObjectTinyTextOvalTop ArrowDownDrawingCommandPutLaTeXCommentPictureCoNLLDep wordLengthtokensdepsPreAlignLangSeq IndexedSeqRelNumTreegetArgumentPlace expr2numtreegenPreAlignment showIndSeqshowRelsgetOffsetIndex computeOffsetstruct tbracketstag conll2latex conll2latex'defaultWordLength defaultUnit spaceLength charWidthwsizewposwdist labelheight labelstartarcbase arcfactorxyratioputArc dep2latex parseCoNLL conll2dep'ppLaTeXapplatexDocppSVGfixCoNLL printCoNLLppPGFppAbsppFlagppCatppFunppCncppCncArg ppProductionppCncFun ppFunListppSeqppCncCat ppPrintNameppSymbolppAltppStrsppFIdppFunIdppSeqIdppAllTransliterationTranstrans_to_unicodetrans_from_unicodeinvisible_chars printname transliteratetransliterateWithFiletransliterationallTransliterationstransliterationPrintNamescharacterTableappTransToUnicodeappTransFromUnicodemkTransliterationgetTransliterationFileunchar transThaitransDevanagariallTransUrduHindi transUrdu transSindhi transArabic transPersian transNepali transHebrew transTelugu transGreektransAncientGreek transAmharicallTransallCodes transSanskritpretty-1.1.3.3#Text.PrettyPrint.Annotated.HughesPJPageMode ZigZagModeLeftMode OneLineModeStylemode lineLengthribbonsPerLinestyleText.PrettyPrint.HughesPJDocisEmptystringOpopInEnvappLexer appUnlexerwrapHTML encodeUnicode decodeUnicodedecodeUnicodeIOioe_invalidCharacter1ioe_invalidCharacter2 getCliticsgetCliticsTextrunInterruptiblyrunInterruptibly_blockInterruptmyInstallHandlermyCatchmyIgnorecanonicalizePathcreateDirectoryIfMissingdoesDirectoryExist doesFileExistgetModificationTimegetDirectoryContentsgetCurrentDirectorygetPermissions removeFile renameFiledirectory-1.3.0.0System.DirectorygetTemporaryDirectorygetUserDocumentsDirectorygetAppUserDataDirectorygetXdgDirectorygetHomeDirectorysetModificationTime setAccessTime getAccessTimeisSymbolicLinkpathIsSymbolicLink doesPathExist getFileSizewithCurrentDirectorysetCurrentDirectory listDirectory findFilesWith findFileWith findFilesfindFilefindExecutablesInDirectoriesfindExecutablesfindExecutablemakeRelativeToCurrentDirectory makeAbsolutecopyFileWithMetadatacopyFile renamePathrenameDirectoryremovePathForciblyremoveDirectoryRecursiveremoveDirectorycreateDirectorycopyPermissionssetPermissionssetOwnerSearchablesetOwnerExecutablesetOwnerWritablesetOwnerReadableemptyPermissions Permissionsreadablewritable executable searchable XdgDirectoryXdgData XdgConfigXdgCache System.Directory.Internal.Config exeExtension setEncoding noTermColorsc_getNumberOfProcessorssetNumCapabilitiesFalsegetNumberOfProcessorsreadShellProcess PropertyName IdentPropNameStringPropName IntPropNamePropertyPropEAssignENewEMemberEIndexECallEDblEStrETrueEFalseENullEThisEArrayEObjESeqDeclVarDVarDInit DeclOrExprDeclDExprStmt SCompound SReturnVoidSReturn SDeclOrExprElementFunDefElStmtProgramPrintprtprtList printTreedoc spaceAfter spaceBeforeparenthconcatSconcatDmkEscprPrec$fPrintPropertyName$fPrintProperty $fPrintExpr$fPrintDeclVar$fPrintDeclOrExpr $fPrintStmt$fPrintElement$fPrintProgram $fPrintIdent $fPrintDouble $fPrintInt $fPrintChar $fPrint[] $fPrettyL$fPrettyLocation $fFunctorLArgDescrNoArgReqArgOptArgOptDescrOptionArgOrder RequireOrderPermute ReturnInOrder usageInfogetOptgetOpt'OptKindOptUnreqOptNonOpt EndOfOptsOptErrfmtOptfmtShortfmtLonggetNextlongOpterrAmbigerrReqerrUnrecerrNoArgFuturenowspawnparMapMnewLognewMVarreadMVarputMVar newEmptyMVarnewChangetChanContents writeChanlazyIOControl.Concurrent.ChanChanControl.Concurrent.MVar modifyMVar modifyMVar_ GHC.Conc.SyncforkIOGHC.MVarMVarsafeInitGHC.Listinit sortGroupByunionAlllookup'find' Data.FoldablefindtableSet buildMultiMap compareEqwhenMPmzero nothingOrNullfoldFunsfixjoin sameLength notLongerThan longerThan lookupListsplitsplitBy foldMerge updateNth updateNthM compareBybothapFstapSndapBothmapFstmapSndmapBothwhenMrepeatMnlspwrapunwordsSunlinesSjoinSAttrXMLDataCDataTagETagcomments showXMLDoc showsXMLDocshowsXML showsAttrs showsAttrescape bottomUpXMLSsTN matchPrefixunmarkup str2stringssstrstritSstrTokplusStrglueStrgluesRel'mkRelmkRel'relaterelates isRelatedTo allRelateddomainintersectSetRelreflexiveClosurereflexiveElements filterRel purgeEmptyequivalenceClassestopologicalSort Data.EitherLeftRightremove relToList reverseReltransitiveClosurereflexiveClosure_symmetricClosuresymmetricSubrelationreflexiveSubrelation isTransitive isReflexive isSymmetric isEquivalenceisSubRelationOftsort findCyclesisEmpty' relToRel' rel'ToRelincomingGraphEdgeNode GraphTypeDirected UndirectedgTypegIdgAttrsgNodesgEdges gSubgraphs addSubGraphssetNamesetAttr prGraphviz prSubGraphprGraph graphtypeprNodeprEdgeedgeop prAttrListprAttrescneedEsc isIDFirstisIDCharnewGraphnodesedgesnmapemapnewNode removeNode removeNodesnodeInfo mergeGraphs renameNodesmap'NodeInfonewNodesnewEdgenewEdgesinsertEdgeWith groupEdgesBy lookupNode getIncoming getOutgoinginDegree outDegree getNodeLabel nodeLabeledgeFromedgeTo edgeLabel reverseGraphFAnewFA_nonLoopTransitionsTo renameStates insertNFA oneFinalStatemoveLabelsToNodesremoveTrivialEmptyNodesskipSimpleEmptyNodes pruneUnusableclosure reachableDFANFAState startState finalStatesstates transitionsnewFA addFinalStatenewState newStates newTransitionnewTransitionsinsertTransitionWithinsertTransitionsWith mapStatesmapTransitionsmodifyTransitions removeStateminimize unusedNamesnonLoopTransitionsFromloopsonGraph isInternalisFinal fixIncoming determinize reachable1 reverseNFAdfa2nfa prFAGraphviz faToGraphvizREUnionREConcatRERERepeatRESymboldfa2re elimStates epsilonREnullREisNull isEpsilonunionREconcatREseqRErepeatREfinalRE reverseRE minimizeRE mergeForwardfirstREmapREmapRE'joinRE symbolsREprREprRE'pMaybe Data.Maybemaybe$fMonadPlusErr $fFunctorErr$fAlternativeErr$fApplicativeErr $fMonadErrData.Traversablesequence checkAgain$fErrorMonadErr BacktrackMBMrunBMfoldBM foldSolutions solutionsfoldFinalStatesmembercut$fMonadStatesBacktrackM$fMonadPlusBacktrackM$fAlternativeBacktrackM$fFunctorBacktrackM$fMonadBacktrackM$fApplicativeBacktrackM mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6Control.Monad.State.Classgetsmodify'modify MonadStategetputstateMulti rawModulesabsNamecncNamesabsRulescncRules readMulti emptyMultiabsCodecncCodegetMultiaddMultigetRuleschopunspacequoteidCharisModulemodlinesGetrunGet runGetStateskip uncheckedSkip lookAhead lookAheadM lookAheadEuncheckedLookAhead bytesRead remaining getByteStringgetLazyByteStringgetLazyByteStringNulgetRemainingLazyByteStringgetBytes splitAtSTreadNgetWord8 getWord16be getWord16le getWord32be getWord32le getWord64be getWord64le getWordhost getWord16host getWord32host getWord64hostunGetmkStatefailDescjoinBSgetPtr shiftl_w16 shiftl_w32 shiftl_w64 $fMonadFixGet $fMonadGet$fApplicativeGet $fFunctorGetBuilderbytestring-0.10.8.1Data.ByteString.Lazy.Internal ByteStringtoLazyByteStringData.ByteString.LazyappendfromByteStringData.ByteString.Internal fromChunksfromLazyByteStringflush unsafeLiftIOwithSize mapBuilder ensureFreewriteN writeNbytes putWord16be putWord16le putWord32be putWord32le putWord64be putWord64le putWordhost putWord16host putWord32host putWord64hostBuffer runBuilder defaultSize writeNBuffer newBufferwriteNBufferBytes shiftr_w16 shiftr_w32 shiftr_w64$fMonoidBuilderPutMexecPutrunPutrunPutMputWord8 putByteStringputLazyByteStringunPutPairSsndStell putBuilder $fMonadPutM$fApplicativePutM $fFunctorPutM ByteCountBitCount SignificandExponentSignPositiveNegativeRawFloatrawWidthrawSign rawExponentrawSignificandrawExponentWidthrawSignificandWidth getFloat16be getFloat16le getFloat32be getFloat32le getFloat64be getFloat64le splitBytesmerge normalised denormalisedgetFloat putFloat32be putFloat32le putFloat64be putFloat64le splitFloat rawToBytesclampmashBitsintegerToBytesputFloat exponentWidthbiasunbiasbitCount bitsInWord8 bitShiftL bitShiftRbitSlicesliceIntpow isNegativeNaNSmallInt encodeFile_ decodeFile_unrollroll$fBinaryUArray $fBinaryArray $fBinaryTree $fBinaryFloat$fBinaryDouble $fBinarySeq$fBinaryIntMap$fBinaryIntSet $fBinaryMap $fBinarySet$fBinaryByteString$fBinaryByteString0$fBinaryEither $fBinaryMaybe $fBinary[]$fBinary(,,,,,,,,,)$fBinary(,,,,,,,,)$fBinary(,,,,,,,)$fBinary(,,,,,,)$fBinary(,,,,,)$fBinary(,,,,) $fBinary(,,,) $fBinary(,,) $fBinary(,) $fBinaryChar $fBinaryRatio$fBinaryInteger $fBinaryInt $fBinaryWord $fBinaryInt64 $fBinaryInt32 $fBinaryInt16 $fBinaryInt8$fBinaryWord64$fBinaryWord32$fBinaryWord16 $fBinaryWord8$fBinaryOrdering $fBinaryBool $fBinary()WordGHC.WordWord8Word16Word32Word64 byteSwap64 byteSwap32 byteSwap16pgfMajorVersionpgfMinorVersiongetPGFgetPGF'getCId getAbstractgetFungetCatgetFlagsgetConcrgetExprgetPatt getEquationgetTypegetHypo getBindType getCncFun getCncCat getSequence getSymbols getSymbolgetAlternativesgetTokenSymbolgetPArg getProduction getLiteralgetArraytoArray listToArraygetListgetList'getMaybegetMap getIntMapgetSetgetPair decodingError putSplitAbsputArray putArray2 getArray2$fBinaryLiteral$fBinaryProduction $fBinaryPArg$fBinarySymbol$fBinaryCncCat$fBinaryCncFun$fBinaryBindType $fBinaryType $fBinaryInstr$fBinaryEquation $fBinaryPatt $fBinaryExpr $fBinaryConcr $fBinaryAbstr $fBinaryCId $fBinaryPGFEnviron getTypeMap getConcMapgetSigsgetAllConcMapTypeMap FuncWithArggetName getTypeArgs InterInstrMyFuncConcTypeMyTypeprovideExampletestThisllinreplaceConcArg replaceOne findExprWhich mapToResource embedInStartmkSigssearchGoodTree getNameExprisGeneralizationOfdebugReplaceArgsdebugReplaceConcisMeta mkFuncWithArginitial startCategfoldablefoldappFoldExConfigurationExConf resource_pgfresource_morphoverboselanguageprintExpparseExamplesInGrammar convertFileconfigureExBasedCFObjCFAbsCFAppCFResCFVarCFMeta removeCyclesmergeIdenticalpurgeExternalCats mutRecCatsallRulesallRulesGroupedallCatsallCats'catRules catSetRulescleanCFGunionCFG anyUsedBy allXLinear isRightLinear isLeftLinearcatElemParamCFG ParamCFRule ParamCFSymbolCFGCFRuleCFSymbolCFTerm cfgStartCatcfgExternalCatscfgRulesRuleruleLhsruleRhsruleName NonTerminalTerminalremoveLeftRecursionmakeSimpleRegular makeRegularmkCFG groupProds uniqueFuns mapCFGCatsonRules filterCFG filterCFGCats countCats countRulesprCFG prProductionsprCFTermruleFunmkCFTermruleIsNonRecursivesymbol mapSymbol filterCats filterToks noCatsInSetSepMap SepTermSymb IsSeparator IsNonemptyBNFCRule BNFCCoercionsBNFCTerminator BNFCSeparatorlhsCatcoerCatcoerNum termNonEmptytermCattermSep sepNonEmptysepCatsepSep BNFCSymbolIsListbnfc2cf isSepTermtransformRulesfRules transformSymbcreateListRulescreateListRules'EItemEITerm EINonTermEIStarEIPlusEIOpt NormERule CFJustRuleCFRHSERHSETermENonTermEAltEStarEPlusEOptEEmptyETokECatERuleEBNFebnf2cfnormEBNF pickERules eitem2cfitem normERulemkEItemmkECatprECatmkCFCatE mkNewECatmkAnswerQuestionsAndAnswersmkQuiztranslationListmorphologyListnorml teachDialogueTreeOptreeOp allTreeOpslargestsmallest treeChunkssubtreesfunNodestransferpgf2js abstract2js absdef2jslit2js concrete2jschildrenfrule2jsfarg2jsffun2jsseq2jssym2jsalt2jsnew mapToJSObjgrammar2lambdaprolog_modgrammar2lambdaprolog_sigppExport ppFunPredppClausemkVarppPredppKinddotdepTypedepHypodepExprequation2clause patt2expr expr2goal AlphaConvert alphaConvert ConvertEnvPLPrintplpplpsgrammar2prolog plAbstract plConcreteplCatplFunplSeqplHeaderplFactsplTermplListplOperplVarplAtomisAlphaNumUnderscorecreateLogicalVariableisLogicalVariablelogicalVariablePrefixemptyEnvalphaConvertHypo$fAlphaConvertEquation$fAlphaConvertExpr$fAlphaConvertType$fAlphaConvert[] $fPLPrint[] $fPLPrintChar$fPLPrintSymbol$fPLPrintLiteral $fPLPrintCId$fPLPrintEquation $fPLPrintPatt $fPLPrintExpr $fPLPrintType pgf2pythonpyAbsdef pyLiteral pyConcrete pyProductionpySymbolpyDictpyListpyTuplepyCatpyFunpySeqpyStrpyCIdpyIndentAPIfunc BasicFuncAppFuncNoAPI exprToAPI stringToAPI exprToFuncmkAPI computeAPIoptimize optimizeNP hiddenCats optimizable rephraseable printAPIfunc syntaxFuncsICIWIVIAIAV rawId2utf8packunpackwild $fPrettyIdent$fBinaryRawIdent$fPrettyModuleName$fShowModuleNameAlexAcc AlexAccNone AlexAccSkip AlexLastAccAlexNone AlexLastSkip AlexReturnAlexEOF AlexErrorAlexSkip AlexTokenAlexAddrAlexA#unP ParseResultPOkPFailed AlexInput2 AlexInputAIPosnPn T_exclmarkT_patt T_int_labelT_oparenT_cparenT_tildeT_star T_starstarT_plus T_plusplusT_commaT_minusT_rarrowT_dotT_altT_colon T_semicolonT_lessT_equal T_big_rarrowT_great T_questmarkT_obrackT_lamT_lamlamT_cbrackT_ocurlyT_barT_ccurly T_underscoreT_at T_cfarrowT_PTypeT_StrT_StrsT_TokT_Type T_abstractT_caseT_cat T_concreteT_dataT_defT_flagsT_fnT_funT_in T_incomplete T_instance T_interfaceT_letT_linT_lincatT_lindefT_linrefT_ofT_openT_operT_param T_patternT_pre T_printname T_resourceT_strsT_table T_transfer T_variantsT_whereT_with T_coercions T_terminator T_separator T_nonemptyT_String T_IntegerT_DoubleT_IdentT_EOF alex_tab_size alex_base alex_table alex_check alex_deflt alex_acceptidenttokreseitherResIdentisReservedWordresWordsunescapeInitTailalexMove alexGetByterunP runPartialrunP'dupfailLoclexertokengetPosn alex_action_3 alex_action_4 alex_action_5 alex_action_6 alex_action_7 alex_action_8alexIndexInt16OffAddralexIndexInt32OffAddr quickIndexalexScan alexScanUser alex_scan_tkn$fFunctorAlexLastAcc$fMonadP$fApplicativeP $fFunctorPcTypecPTypecTokcStrcStrs cPredefAbs cPredefCnccPredefcIntcFloatcStringcVarcIntscPBool cErrorType cOverloadcUndefinedType cNonExistcBIND cSOFT_BIND cSOFT_SPACEcCAPIT cALL_CAPIT isPredefCatcPTruecPFalsecLengthcDropcTakecTkcDpcToUppercToLowercIsUppercEqStrcEqValcOccurcOccurscEqIntcLessIntcPluscShowcReadcToStrcMapStrcErrorcTracecMetacAscCharcCharscSeqcAltcRepcNegcCNC cConflictPPAPatExpTyConApDecppAWildPVarPConPAsPConstOpListPairLets LambdaCaseTIdTApListTFunDepsDerivingClassInstanceTypeSigEqnconap0tsyn0lhs0tvartcon0tconlet1singleplusplus$fPPAPat $fPrettyPat$fPPAExp $fPrettyExp$fPPATy $fPrettyTy $fPrettyConAp $fPrettyDec $fPPAIdentoptDescrWarningWarnMissingLincat usageHeadererrors defaultFlags outputFormatsoptimizationPackagescfgTransformNameshaskellOptionNames lookupShowlookupReadsPreconOffsetOptimization'setCFGTransform'toggle readMaybe toEnumBounded$fFunctorArgDescr$fFunctorOptDescr$fReadOutputFormat$fShowOutputFormat $fShowOptionsgrammar2haskellelemCat HSkeletonOIdent haskPreamble predefInst datatypes gfinstances hDatatypenonLexicalRuleslexicalConstructorpredefTypeSkel datatypesGADT hCatTypeGADT hDatatypeGADThEqGADTprCompos gfInstance hInstancemkVarsmkSVars fInstance hSkeleton isListCatbaseSize composClassMPattMGrammar$fHasSourcePathModuleInfoArgumentAExprATermANoArgAMacroVIdVIntVStrOOptOFlagCommandPipe CommandLine valCIdOpts valIntOpts valStrOpts listFlags valueStringisOptisFlag optsAndFlagsprOptmkOpt getCommandOp PredefinedDropTakeTkDpEqStrOccurOccursToUpperToLowerIsUpperPlusEqIntLessIntTracePBoolPFalsePTrueIntFloatIntsNonExistBindBindingWildVCAppVAbsVProdVFloatVStringVSortVTblTypeVRecTypeVRecVVVTVCVSVPVPatt VPattTypeVFVVAltsVStrsVError$fEqBindPredeftoValue fromValueverrorpredefpredefs predefName predefNames predefListdeltaboolVnormstringswap$fPredefPredefined $fPredefValue $fPredef[] $fPredefBool $fPredefInt MetaSubst ConstraintsBindsValVCnVTypeVClos valAbsInt valAbsFloat valAbsStringvTypeeTypeModDepsmodtypeofs extendedsopenedsextradsfunctors interfaces instancesdepGraph prDepGraph noModDepsgrammar2moddeps ppOptions ppEquationppCaseppEnvppDeclppDDecl ppOpenSpec ppInstSpecppLocDefppAlternppParam ppSequences commaPunctprec getCTablegetLet $fPrettyLabel $fPrettyPatt $fPrettyTerm$fPrettyGrammar CommandOutputPipedCommandArgumentsExprsStrings TypeCheckArg typeCheckArg CommandInfoexecsynopsissyntax explanationlongnameoptionsflagsexamplesneedsTypeCheckmapCommandExecemptyCommandInfo fromStrings fromExprs fromStringpipeWithMessage pipeMessage pipeExprsvoid stringAsExpr toStringstoExprstoTermmkEx typPredefined primitivesTCEnvTheoryAAssign ALabellingAExpAVrACnATypeAIntAFloatAStrAMetaALetAAppAAbsAProdARecTypeARAPAGlueAData lookupConstwhnfeqValcheckExp checkInferExpinferExpcheckLabelling checkAssign checkBranch checkPattnoConstrmkAnnotConstrsUnifierunifyValunifyAllunifyextend subst_all substMetas substTermoccCheckval2term lockRecType unlockRecord lockLabel isLockLabel lockPrefixlookupOrigInfolookupCatContextlockunlock lookupIdentlookupIdentInfolookupQIdentInfo lookupResDeflookupResDefLoc lookupResTypelookupOverloadTypeslookupOverload allOrigInfoslookupParamValuesallParamValues lookupAbsDef lookupLincatallOpers allOpersTogenerateByteCodecompileEquationsmkFail compileBody compileFun compileArg compileLambda shiftIValpushArgstuckArgssetArgsfreeVarsi2ipush_isTermMTermList subexpModuleunsubexpModuleaddSubexpConstsgetSubtermsModcollectSubterms operIdent isOperIdent operPrefixstripSourceGrammar stripInfoconstantsInTerm constantDeps getIdTermconstantDepsTermtermsOfConstant sizeConstantsizeTermsizeInfo sizesModule sizesGrammarprintSizesGrammar minLength maxLength matchPatterntestOvershadow findMatchtryMatch matchPMSeq matchPSeq matchPSeq' matchLength lengthBoundsmPatt measurePattisInConstantFormresourceValues traceResourcevalue0value strsFromValue value2term OpenValueStack LocalScope GLocation CompleteEnvCEsrcgrrvsoptsgloclocal GlobalEnvGEResourceValuesnfxgeLoc geGrammarextglobalvarpickresourcevconcatprojok1ok2ok2p unlockVRecplusVRecextRgluevfv valueMatch valueTable paramValues paramValues' paramValues''push'pushapply'vapplyvbetavaryvaryListvtrace value2term' linPattVarspattVars allPattVarsix#<#buglocbugppbugconcretes2haskellconcrete2haskell toHaskellcon tableTypes paramTypesrecordscoerceconvertconvert'patVarsconvTypeproj'rconrcon' rcon_nameto_rconto_rcon' recordType labelClass paramTypeenumConqualoptimizeModulepartEval mkLinDefaultevalInfo partEvalNewmkLinReference evalPrintnamefactorTermPrintStyleTermPrintTable TermPrintAll TermPrintList TermPrintOneTermPrintDefaultshowTerm ppTermTabular checkError checkWarncheckAccumErroraccumulateError commitCheckrunCheck runCheck' checkInModuleCheckunCheck CheckResultFailSuccess AccumulateNonFatalMessagehandle' checkCond checkWarnings parallelCheckcheckMapcheckMapRecovercheckIn$fErrorMonadCheck$fApplicativeCheck $fMonadCheck$fFunctorCheckrenameSourceTerm renamePattern StatusInfo StatusTreeStatus renameModulerenameIdentTermrenameIdentTerm' info2status tree2status buildStatusmodInfo2status self2status renameInfo renameTerm renameContext initTCEnvtype2valcont2expcont2val justTypeCheck notJustMetagrammar2theory checkContextcheckTypcheckDef checkConstrs instSigma subsCheckRhounifyVar instantiate skolemisequantify getMetaVars getFreeVarszonkTermTcATcSingleTcManyTcResultTcOkTcFailUnboundBoundTauRhoSigma checkLType inferLType inferSigmavtypeInt vtypeFloat vtypeIntsvtypeStr vtypeStrs vtypeType vtypePTypetcRhotcCasestcApptcOverloadFailedtcPattinferRecFieldscheckRecFields tcRecFieldtcRecTypeFields subsCheckFun subsCheckTblunifyFununifyTbl allBinderstcErrortcWarn unimplementednewVar scopeTypes tc_value2termmkTcA singleTcAbindTcArunTcA$fErrorMonadTcMsubstituteLTypecheck2 computeLType getOverload pattContext checkEqLTypecheckIfEqLTypetermWith checkLookup checkModule checkInfocheckReservedId linTypeOfTypecheckRestrictedInheritancecheckCompleteGrammar buildAnyTree rebuildModule extendMod unifyMaybeL extendModule globalizeLoc unifyAnyInfo unifAbsArrity unifAbsDefs HappyAddrHappyA#HappyStk Happy_IntList HappyConsHappyAny HappyAbsSyn happyIn10 happyOut10 happyIn11 happyOut11 happyIn12 happyOut12 happyIn13 happyOut13 happyIn14 happyOut14 happyIn15 happyOut15 happyIn16 happyOut16 happyIn17 happyOut17 happyIn18 happyOut18 happyIn19 happyOut19 happyIn20 happyOut20 happyIn21 happyOut21 happyIn22 happyOut22 happyIn23 happyOut23 happyIn24 happyOut24 happyIn25 happyOut25 happyIn26 happyOut26 happyIn27 happyOut27 happyIn28 happyOut28 happyIn29 happyOut29 happyIn30 happyOut30 happyIn31 happyOut31 happyIn32 happyOut32 happyIn33 happyOut33 happyIn34 happyOut34 happyIn35 happyOut35 happyIn36 happyOut36 happyIn37 happyOut37 happyIn38 happyOut38 happyIn39 happyOut39 happyIn40 happyOut40 happyIn41 happyOut41 happyIn42 happyOut42 happyIn43 happyOut43 happyIn44 happyOut44 happyIn45 happyOut45 happyIn46 happyOut46 happyIn47 happyOut47 happyIn48 happyOut48 happyIn49 happyOut49 happyIn50 happyOut50 happyIn51 happyOut51 happyIn52 happyOut52 happyIn53 happyOut53 happyIn54 happyOut54 happyIn55 happyOut55 happyIn56 happyOut56 happyIn57 happyOut57 happyIn58 happyOut58 happyIn59 happyOut59 happyIn60 happyOut60 happyIn61 happyOut61 happyIn62 happyOut62 happyIn63 happyOut63 happyIn64 happyOut64 happyIn65 happyOut65 happyIn66 happyOut66 happyIn67 happyOut67 happyIn68 happyOut68 happyIn69 happyOut69 happyIn70 happyOut70 happyIn71 happyOut71 happyIn72 happyOut72 happyIn73 happyOut73 happyIn74 happyOut74 happyIn75 happyOut75 happyIn76 happyOut76 happyIn77 happyOut77 happyIn78 happyOut78 happyIn79 happyOut79 happyIn80 happyOut80 happyIn81 happyOut81 happyIn82 happyOut82 happyIn83 happyOut83 happyIn84 happyOut84 happyIn85 happyOut85 happyIn86 happyOut86 happyIn87 happyOut87 happyIn88 happyOut88 happyIn89 happyOut89 happyIn90 happyOut90 happyIn91 happyOut91 happyIn92 happyOut92 happyIn93 happyOut93 happyIn94 happyOut94 happyIn95 happyOut95 happyIn96 happyOut96 happyIn97 happyOut97 happyIn98 happyOut98 happyIn99 happyOut99 happyInTok happyOutTokhappyActOffsetshappyGotoOffsetshappyDefActions happyCheck happyTablehappyReduceArr happy_n_termshappy_n_nonterms happyReduce_7happyReduction_7 happyReduce_8happyReduction_8 happyReduce_9happyReduction_9happyReduce_10happyReduction_10happyReduce_11happyReduction_11happyReduce_12happyReduction_12happyReduce_13happyReduction_13happyReduce_14happyReduction_14happyReduce_15happyReduction_15happyReduce_16happyReduction_16happyReduce_17happyReduction_17happyReduce_18happyReduction_18happyReduce_19happyReduction_19happyReduce_20happyReduction_20happyReduce_21happyReduction_21happyReduce_22happyReduction_22happyReduce_23happyReduction_23happyReduce_24happyReduction_24happyReduce_25happyReduction_25happyReduce_26happyReduction_26happyReduce_27happyReduction_27happyReduce_28happyReduction_28happyReduce_29happyReduction_29happyReduce_30happyReduction_30happyReduce_31happyReduction_31happyReduce_32happyReduction_32happyReduce_33happyReduction_33happyReduce_34happyReduction_34happyReduce_35happyReduction_35happyReduce_36happyReduction_36happyReduce_37happyReduction_37happyReduce_38happyReduction_38happyReduce_39happyReduction_39happyReduce_40happyReduction_40happyReduce_41happyReduction_41happyReduce_42happyReduction_42happyReduce_43happyReduction_43happyReduce_44happyReduction_44happyReduce_45happyReduction_45happyReduce_46happyReduction_46happyReduce_47happyReduction_47happyReduce_48happyReduction_48happyReduce_49happyReduction_49happyReduce_50happyReduction_50happyReduce_51happyReduction_51happyReduce_52happyReduction_52happyReduce_53happyReduction_53happyReduce_54happyReduction_54happyReduce_55happyReduction_55happyReduce_56happyReduction_56happyReduce_57happyReduction_57happyReduce_58happyReduction_58happyReduce_59happyReduction_59happyReduce_60happyReduction_60happyReduce_61happyReduction_61happyReduce_62happyReduction_62happyReduce_63happyReduction_63happyReduce_64happyReduction_64happyReduce_65happyReduction_65happyReduce_66happyReduction_66happyReduce_67happyReduction_67happyReduce_68happyReduction_68happyReduce_69happyReduction_69happyReduce_70happyReduction_70happyReduce_71happyReduction_71happyReduce_72happyReduction_72happyReduce_73happyReduction_73happyReduce_74happyReduction_74happyReduce_75happyReduction_75happyReduce_76happyReduction_76happyReduce_77happyReduction_77happyReduce_78happyReduction_78happyReduce_79happyReduction_79happyReduce_80happyReduction_80happyReduce_81happyReduction_81happyReduce_82happyReduction_82happyReduce_83happyReduction_83happyReduce_84happyReduction_84happyReduce_85happyReduction_85happyReduce_86happyReduction_86happyReduce_87happyReduction_87happyReduce_88happyReduction_88happyReduce_89happyReduction_89happyReduce_90happyReduction_90happyReduce_91happyReduction_91happyReduce_92happyReduction_92happyReduce_93happyReduction_93happyReduce_94happyReduction_94happyReduce_95happyReduction_95happyReduce_96happyReduction_96happyReduce_97happyReduction_97happyReduce_98happyReduction_98happyReduce_99happyReduction_99happyReduce_100happyReduction_100happyReduce_101happyReduction_101happyReduce_102happyReduction_102happyReduce_103happyReduction_103happyReduce_104happyReduction_104happyReduce_105happyReduction_105happyReduce_106happyReduction_106happyReduce_107happyReduction_107happyReduce_108happyReduction_108happyReduce_109happyReduction_109happyReduce_110happyReduction_110happyReduce_111happyReduction_111happyReduce_112happyReduction_112happyReduce_113happyReduction_113happyReduce_114happyReduction_114happyReduce_115happyReduction_115happyReduce_116happyReduction_116happyReduce_117happyReduction_117happyReduce_118happyReduction_118happyReduce_119happyReduction_119happyReduce_120happyReduction_120happyReduce_121happyReduction_121happyReduce_122happyReduction_122happyReduce_123happyReduction_123happyReduce_124happyReduction_124happyReduce_125happyReduction_125happyReduce_126happyReduction_126happyReduce_127happyReduction_127happyReduce_128happyReduction_128happyReduce_129happyReduction_129happyReduce_130happyReduction_130happyReduce_131happyReduction_131happyReduce_132happyReduction_132happyReduce_133happyReduction_133happyReduce_134happyReduction_134happyReduce_135happyReduction_135happyReduce_136happyReduction_136happyReduce_137happyReduction_137happyReduce_138happyReduction_138happyReduce_139happyReduction_139happyReduce_140happyReduction_140happyReduce_141happyReduction_141happyReduce_142happyReduction_142happyReduce_143happyReduction_143happyReduce_144happyReduction_144happyReduce_145happyReduction_145happyReduce_146happyReduction_146happyReduce_147happyReduction_147happyReduce_148happyReduction_148happyReduce_149happyReduction_149happyReduce_150happyReduction_150happyReduce_151happyReduction_151happyReduce_152happyReduction_152happyReduce_153happyReduction_153happyReduce_154happyReduction_154happyReduce_155happyReduction_155happyReduce_156happyReduction_156happyReduce_157happyReduction_157happyReduce_158happyReduction_158happyReduce_159happyReduction_159happyReduce_160happyReduction_160happyReduce_161happyReduction_161happyReduce_162happyReduction_162happyReduce_163happyReduction_163happyReduce_164happyReduction_164happyReduce_165happyReduction_165happyReduce_166happyReduction_166happyReduce_167happyReduction_167happyReduce_168happyReduction_168happyReduce_169happyReduction_169happyReduce_170happyReduction_170happyReduce_171happyReduction_171happyReduce_172happyReduction_172happyReduce_173happyReduction_173happyReduce_174happyReduction_174happyReduce_175happyReduction_175happyReduce_176happyReduction_176happyReduce_177happyReduction_177happyReduce_178happyReduction_178happyReduce_179happyReduction_179happyReduce_180happyReduction_180happyReduce_181happyReduction_181happyReduce_182happyReduction_182happyReduce_183happyReduction_183happyReduce_184happyReduction_184happyReduce_185happyReduction_185happyReduce_186happyReduction_186happyReduce_187happyReduction_187happyReduce_188happyReduction_188happyReduce_189happyReduction_189happyReduce_190happyReduction_190happyReduce_191happyReduction_191happyReduce_192happyReduction_192happyReduce_193happyReduction_193happyReduce_194happyReduction_194happyReduce_195happyReduction_195happyReduce_196happyReduction_196happyReduce_197happyReduction_197happyReduce_198happyReduction_198happyReduce_199happyReduction_199happyReduce_200happyReduction_200happyReduce_201happyReduction_201happyReduce_202happyReduction_202happyReduce_203happyReduction_203happyReduce_204happyReduction_204happyReduce_205happyReduction_205happyReduce_206happyReduction_206happyReduce_207happyReduction_207happyReduce_208happyReduction_208happyReduce_209happyReduction_209happyReduce_210happyReduction_210happyReduce_211happyReduction_211happyReduce_212happyReduction_212happyReduce_213happyReduction_213happyReduce_214happyReduction_214happyReduce_215happyReduction_215happyReduce_216happyReduction_216happyReduce_217happyReduction_217happyReduce_218happyReduction_218happyReduce_219happyReduction_219happyReduce_220happyReduction_220happyReduce_221happyReduction_221happyReduce_222happyReduction_222happyReduce_223happyReduction_223happyReduce_224happyReduction_224happyReduce_225happyReduction_225happyReduce_226happyReduction_226happyReduce_227happyReduction_227happyReduce_228happyReduction_228happyReduce_229happyReduction_229happyReduce_230happyReduction_230happyReduce_231happyReduction_231happyReduce_232happyReduction_232happyReduce_233happyReduction_233happyReduce_234happyReduction_234happyReduce_235happyReduction_235happyReduce_236happyReduction_236happyReduce_237happyReduction_237happyReduce_238happyReduction_238happyReduce_239happyReduction_239happyReduce_240happyReduction_240happyReduce_241happyReduction_241happyReduce_242happyReduction_242happyReduce_243happyReduction_243happyReduce_244happyReduction_244happyReduce_245happyReduction_245happyReduce_246happyReduction_246happyReduce_247happyReduction_247happyReduce_248happyReduction_248happyReduce_249happyReduction_249happyReduce_250happyReduction_250happyReduce_251happyReduction_251happyReduce_252happyReduction_252happyReduce_253happyReduction_253happyReduce_254happyReduction_254happyReduce_255happyReduction_255happyReduce_256happyReduction_256happyReduce_257happyReduction_257happyReduce_258happyReduction_258happyReduce_259happyReduction_259happyReduce_260happyReduction_260happyReduce_261happyReduction_261happyReduce_262happyReduction_262happyReduce_263happyReduction_263happyReduce_264happyReduction_264happyReduce_265happyReduction_265happyReduce_266happyReduction_266happyReduce_267happyReduction_267happyReduce_268happyReduction_268happyReduce_269happyReduction_269happyReduce_270happyReduction_270happyReduce_271happyReduction_271happyReduce_272happyReduction_272 happyNewToken happyError_ happyThen happyReturn happyThen1 happyReturn1 happyError'pModDefpTopDef pModHeaderpTermpExp pBNFCRules pEBNFRuleshappySeq happyErrormkListIdmkConsIdmkBaseId listCatDeftryLocmkR mkOverload isOverloading checkInfoTypemkAltsmkL happyParse happyAccept happyDoActionindexShortOffAddr happyShifthappySpecReduce_0happySpecReduce_1happySpecReduce_2happySpecReduce_3 happyReducehappyMonadReducehappyMonad2Reduce happyDrop happyDropStk happyGoto happyFail notHappyAtAll happyTcHack happyDoSeq happyDontSeqreadCommandLine pCommandLinepPipepCommandpOptionpValue pFilename pArgumentpArgTermpSystemCommandpTheRestfailIO$fErrorMonadIO$fOutputStateT $fOutputIO appCommand interpret getCommand CommandEnvcommands commandmacros expmacros mkCommandEnvinterpretCommandLine interpretPipegetCommandInfo checkOptsgetCommandTreescf2pgfcf2abstrcf2concr mkRuleName ProtoFCatPathSchemavariantschoicesgetAllParamValuesFunSetProdSetPMCFGEnvSeqSetPFCatCProjCSelCNilCRecCTblCStrCParCnvMonadCMunCMBranchVariantReturn generatePMCFGmapAccumWithKeyMaddPMCFGfloc pgfCncCat runCnvMonad protoFCatgetFIds catFactorcomputeCatRangeppPath reversePath convertTerm convertArg convertRec convertTblgoBgoV addSequencesB addSequencesV mapAccumL' addSequenceevalTerm getVarIndex emptyPMCFGEnv addFunctiongetPMCFG restrictArg restrictHeadrestrictProtoFCatmkArray mkSetArrayppU $fShowSchema$fFunctorCnvMonad$fMonadState(,)CnvMonad$fMonadCnvMonad$fApplicativeCnvMonad mkCanon2pgfmi2imkExpmkPatt mkContextmkDefmkArity genCncCats genCncFuns genPrintNames mkMapArray writeTags getLocalTags getImports gftagsFile gf2gftags decodeFile'addFPath gfoVersion gfoBinVersion$fFunctorVersionTagged$fBinaryVersionTagged $fBinaryLabel $fBinaryTInfo $fBinaryTerm $fBinaryL$fBinaryLocation $fBinaryInfo $fBinaryPMCFG$fBinaryOptions$fBinaryModuleStatus$fBinaryOpenSpec$fBinaryMInclude$fBinaryModuleType$fBinaryModuleInfo$fBinaryGrammar$fBinaryModuleName $fBinaryIdent getAllFilesgetOptionsFromFile CompStatusCSCompCSReadCSEnvModEnvModName gfImports gfoImports selectFormatimportsOfModuleparseModHeader parseSourcetoUTF8 recodeToUTF8 getPragmas getFilePath TemporaryTemprunPreprocessorbuiltin_preprocessors mkPresent mkMinimal omit_lines writeTempreadTempkeepTemp removeTemp CompileSourcecompileSourceModulewriteGFO intermOutidumpwarnOut CompileEnv compileModule compileOne'emptyCompileEnvextendCompileEnv importGrammar ioUnionPGF importSourceimportCF CollectOutputCOunCOHiderevealIOCacheopcachesetJobs batchCompile1 splitEither canonicalgetPathFromFile relativeTo newIOCache readIOCache$fErrorMonadCollectOutput$fOutputCollectOutput$fMonadIOCollectOutput$fMonadCollectOutput$fApplicativeCollectOutput$fFunctorCollectOutput $fOrdHide$fEqHideMonadSIOrunSIOhRunSIOGHC.IO.Handle.FDstdout captureSIOliftSIOSIOunSPutStr restrictedrestrictedSystem restrictedIOlift0lift1putStr putStrFlushputStrLn putStrLnFlushprint getCPUTime newStdGenlazySIO $fMonadSIOt $fMonadSIOSIO $fOutputSIO $fMonadSIO$fApplicativeSIO $fFunctorSIOcommonCommands stringOpsenvFlagstringOpOptionstrietoStringtoLines HasGrammar getGrammarsourceCommandscheckComputeTermmake_facfgToFA' sortSubLatscompileAutomatamake_fa1addStatesForCatsMFA MutRecSets MutRecSetmrCats mrNonRecRules mrRecRulesmrRec RecursivityRightRLeftRNotRcfgToFAcompileAutomatoncfgToMFAbuildMFA mfaStartDFAmfaToDFAremoveUnusedSubLats subLatUseMap usedSubLats mutRecSets revMultiMapProfile bnfPrintertoBNFpgfToCFG regexpPrintermultiRegexpPrinterprREsmfa2resSLFWord slfSubPrinter isNonWordSLF_FASLFEdgeeIdeStarteEndSLFNode SLFSubLatnIdnWordnTagnLatSLFslfNodesslfEdgesSLFsmkFAs slfStyleFAslfGraphvizPrinterslfSubGraphvizPrintergvSLFFA slfPrinterautomatonToSLFmfaNodeToSLFNode mkSLFNode mkSLFSubLat mkSLFEdgeprSLFsprSLFprOneSLFshowWordprFieldsSRGNTSRGAltsrgName srgStartCat srgLanguagemakeNonLeftRecursiveSRG renameCats mergeItems SRGSymbolSRGItemSRGRuleSRGsrgExternalCatssrgRules ebnfPrintermakeSRGsetDefaultCFGTransformmaybeTransformmakeNonRecursiveSRGmkSRGcfRulesToSRGRule srgLHSCat isExternalCatsrgItem groupTokens ungroupTokensprSRG lookupFM_width gslPrinterprGSLprItemprSymbolprCat firstToUpper showTokencomment emptyLine$++$SISRTagprSISR topCatSISRprofileInitSISRusedArgscatSISRprofileFinalSISRfmtOutfmtReffieldasstreeobj jsgfPrinterprJSGFaltsrule prepunctuatesrgsAbnfPrintersrgsAbnfNonRecursivePrintershowDocprABNFmetasrgsXmlPrintersrgsXmlNonRecursivePrinter prSrgsXmlmkItemsymItemoneOfgrammar optimizeSRGS grammar2vxml CatQuestionsSkeleton pgfSkeleton catQuestions catQuestiongetCatQuestion skel2vxml grammarURIcatFormscat2formfun2sub catFormIdvxmlform subdialogfilled vxmlGrammarprompt promptStringreturn_block blockCondparam outputConcrinfinity HasPGFEnv getPGFEnvPGFEnvpgfmospgfEnv pgfCommands treeOpOptions treeOpFlagstranslationQuizmorphologyQuiz prLexcLexiconprFullFormLexicon prAllWordsprMorphoAnalysis viewGraphviz viewLatexstanzas$fTypeCheckArgmcompileSourceFilescompileCFFiles unionPGFFiles writeOutput grammarName grammarName' outputJustPGF outputPathwritingCncJmentPaLCLiIgnored parseModule convModule convAbstract convExtends convExtend convAbsJments convAbsJmentconvSimpleTypeconvId convModId convConcrete convOpensconvOpen convCncJments convCncJmentconvBind jmentList jmentLocationloc darcs_info buildInfowelcome licenseMsg codingMsg changesMsgcommandHelpAll' commandHelp' commandHelpcommandHelpTagssection optionallycompact helpCommandnewCache flushCache expireCache listCache readCache readCache'FileInfo cacheLoad cacheObjectsfst3$cgi-3001.3.0.2-I5Eqn5ymReRTEBfBMYGVm Network.CGI setHeader readInputgetInputrequestAcceptLanguagegetVarWithDefault outputError handleErrors outputFPSoutputNetwork.CGI.Accept negotiateAcceptNetwork.CGI.MonadcatchCGIthrowCGIrunCGITNetwork.CGI.Protocol CGIRequestcgiVars cgiInputscgiRequestBodyInput inputValue inputFilenameinputContentType CGIResult CGIOutput CGINothing&multipart-0.1.2-LJAJRRORFLcD7Rh2YXlqkvNetwork.Multipart.Header ContentType ctParameters ctSubtypectType HeaderNameHeadersCGIError cgiErrorCodecgiErrorMessage cgiErrorTextlogError stderrToFile throwCGIErrorhandleCGIErrors outputJSONPoutputEncodedJSONP outputPNG outputBinary outputBinary' outputHTML outputPlain outputText outputStrictsetXO$fExceptionCGIError newPGFCachecgiMaincgiMain'doPossibilitiesdoProvideExampledoAbstractExampleabstractExampledoTestFunction readParsePGF parseEnvirongetInpm2r readResultenviron instExpMetainstMeta $fJSONExpr $fJSONCIdilexerunlexerC unlexText'unlexerHjsonExprlinearizeTabularToATreeshowTreeTreeOptsToFromUnlexerCachespgfCache labelsCachecncLabelsCachecatchIOEwithQSemlogFile flushPGFCache listPGFCache labelsCaches newCache'getPathoptionalCpgfMain serverErrorgetFilelexer'pgfMainout getInput1nonEmpty textInput getLangs'getLang'limitstarttreeoptsgetBooltoBoolmissingerrorMissingIdnotFound badRequestthrowformat doExternaldoLookupMorpho doTranslatejsonTypeErrorsdoTranslateGroupdoParseaddTrieaddTree doCompletecompletionInfo doLinearize doLinearizesdoLinearizeTabulardoRandom doGenerate doGrammaroutputGraphviz abstrTree parseTree doDepTree getLabels getCncLabelstryIO alignmentpipeIt2graphviz browse1jsondoBrowseparse' complete'linearizeAndUnlexselectLanguagelangCodeLanguage%$fJSONBracketedString $fJSONTrie $fToATreeExpr documentRootportrunHTTP cgiHandlerhttpRespcgiReqHMserver ok_access ok_to_delete removeDirdebug gf_versionrunget_qs get_stateput_qs put_state hmbracket_ jsonresultserveStaticFileserveStaticFile' logPutStrLnjsonpok200ok200'json200json200' jsonp200'html200resp204resp301resp400resp404resp500resp501plain plainUTF8jsonUTF8 jsonpUTF8htmlUTF8ctcsutf8xolocationcontentTypeFromExt updateFile newDirectorysetDir utf8inputsdecodedrawinputs$fErrorResponseloopreadAndExecute1True readCommandoptionallyShowCPUTimeexecute1 execute1' moreCommandsGFEnvCompletionTypeCmplCmdCmplStrCmplOpt CmplIdent startOptsretainpgfenv commandenvhistoryCmdEnvShellMbeQuietshellpwordsimport_printException fetchCommand importInEnv tryGetLine emptyGFEnv emptyCmdEnvemptyCommandEnv multigrammar allCommandswordCompletionwc_type$fHasPGFEnvStateT$fHasGrammarStateT