|N      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu v w x y z { | } ~                       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                               !!!! ! ! ! ! !!!!!!!!!!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+!,"-"."/0123456789:;<=>?@ABCDEFGHIJKL#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${$|$}$~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''''''''''''''''''''''''' ' ' ' ' ''((((((((((((((((( (!)")#)$)%)&)')()))*)+),)-).)/)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-{-|-}-~-----------------............////////000000000000000000000000000000000000000 0 0 0 0 0000000000000000000 0!0"0#0$0%0&0'0(0)0*0+0,0-0.0/000102131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^2_2`2a2b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q4r4s4t4u4v4w4x5y5z5{5|5}5~55555555555555555556666666666666666666666677777777788888888888888888888888888888888888999999999999999999999999::::::::::::;;;;;;;;;;;;;;;;; ; ; ; ; ;;;;;;;;;;;<<<<<<<< <!<"<#=$=%=&='=(=)=*=+=,=-=.=/=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?{?|?}@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBCCCCCCDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFF F F F F FFFFFFFFFFFFFFFFFFF F!F"F#F$F%F&F'F(F)F*F+F,F-F.F/F0F1F2F3F4F5F6F7F8F9F:F;F<F=F>F?F@FAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTGUGVGWGXGYGZG[G\G]G^G_G`GaGbHcHdHeHfHgHhIiIjIkIlImJnJoJpJqJrJsJtJuJvJwJxJyJzJ{J|J}J~JJJJJJJJJJJJJJJJJJJJJJJJKLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQ R R R R RRRRRRRRRRRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+R,R-R.R/R0R1R2R3R4R5R6R7R8R9R:R;R<R=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR[R\R]R^R_R`RaSbScSdSeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuTvTwTxTyTzT{T|T}T~TTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVWWXXXXXXXYZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[\\\]]]]]]]]]^_```````````````````a a a a a aaaaaabbbbbbbbcccdd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGeHfIgJgKhLhMhkbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None !"#$%&*)'(*)('% ('"!$#)&bastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneDQRT+,-N./01234OP57QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}+,-./01234 -.+,/01234 +,-N./01234OP5bastiaan.heeren@ou.nl  provisional portable (depends on ghc) SafeDEConstruct a (named) test suite containing test cases and other suitesE_Turn a QuickCheck property into the test suite. The first argument is a label for the propertyF[Turn a QuickCheck property into the test suite, also providing a test configuration (Args)M#All errors are turned into warningsS6789~:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiH6789:;<=>?AB@CDEFGHIJKLMNOPQRSTUVWXYZ[\],CDEFGHIKJLMNOP?@ABQTUSR@BAVXW=>YZ><:;]\[9678<6789~:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghibastiaan.heeren@ou.nl  provisional portable (depends on ghc) Noneopqropqropqropqr bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safeuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 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 guvwxyz{|}~uvwxyz{}|~uvwxyz{|}~ bastiaan.heeren@ou.nl  provisional portable (depends on ghc) SafeATbastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe  h i j k l m n o p q r s t u v w x y z { | } ~   6 bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe  bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe_    PP)     bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe Encode a string to UTF8 format .Decode an UTF8 format string to unicode points(Encode a string to UTF8 format (monadic)8Decode an UTF8 format string to unicode points (monadic)1Test whether the argument is a proper UTF8 string2Test whether all characters are in the range 0-255/QuickCheck internal encoding/decoding functions              bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe    bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe:U                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M NU                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M Nbastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe !"#$% O&'()*+, #!"$%&'()*+ !"#%&$*'()+ !"#$% O&'()*+,bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe - P./0123456789:;<=>?@ Q RABC SD T UEFE #!"$'()*+-.4312/506789:;<=>?@ABCD%>=< !"#789:;-A@?$'*D)(+./0123456CB- P./0123456789:;<=>?@ Q RABC SD T UEF/3bastiaan.heeren@ou.nl  provisional portable (depends on ghc) SafeGHIJKLGHIJKLGHIJKLGHIJKLbastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneMNOPQRSTUV V WWX MNOPQRSTUV MNOPQRSTUVMNOPQRSTUV V WWXSafe[-List of symbols defined in transc1 dictionary\This symbol represents a binary log function; the first argument is the base, to which the second argument is log'ed. It is defined in Abramowitz and Stegun, Handbook of Mathematical Functions, section 4.1 ]This symbol represents the ln function (natural logarithm) as described in Abramowitz and Stegun, section 4.1. It takes one argument. Note the description in the CMP/FMP of the branch cut. If signed zeros are in use, the inequality needs to be non-strict. ^~This symbol represents the exponentiation function as described in Abramowitz and Stegun, section 4.2. It takes one argument. _sThis symbol represents the sin function as described in Abramowitz and Stegun, section 4.3. It takes one argument. `sThis symbol represents the cos function as described in Abramowitz and Stegun, section 4.3. It takes one argument. asThis symbol represents the tan function as described in Abramowitz and Stegun, section 4.3. It takes one argument. bsThis symbol represents the sec function as described in Abramowitz and Stegun, section 4.3. It takes one argument. csThis symbol represents the csc function as described in Abramowitz and Stegun, section 4.3. It takes one argument. dsThis symbol represents the cot function as described in Abramowitz and Stegun, section 4.3. It takes one argument. etThis symbol represents the sinh function as described in Abramowitz and Stegun, section 4.5. It takes one argument. ftThis symbol represents the cosh function as described in Abramowitz and Stegun, section 4.5. It takes one argument. gtThis symbol represents the tanh function as described in Abramowitz and Stegun, section 4.5. It takes one argument. htThis symbol represents the sech function as described in Abramowitz and Stegun, section 4.5. It takes one argument. itThis symbol represents the csch function as described in Abramowitz and Stegun, section 4.5. It takes one argument. jtThis symbol represents the coth function as described in Abramowitz and Stegun, section 4.5. It takes one argument. kThis symbol represents the arcsin function. This is the inverse of the sin function as described in Abramowitz and Stegun, section 4.4. It takes one argument. lThis symbol represents the arccos function. This is the inverse of the cos function as described in Abramowitz and Stegun, section 4.4. It takes one argument. mThis symbol represents the arctan function. This is the inverse of the tan function as described in Abramowitz and Stegun, section 4.4. It takes one argument. n_This symbol represents the arcsec function as described in Abramowitz and Stegun, section 4.4. o_This symbol represents the arccsc function as described in Abramowitz and Stegun, section 4.4. p_This symbol represents the arccot function as described in Abramowitz and Stegun, section 4.4. q`This symbol represents the arcsinh function as described in Abramowitz and Stegun, section 4.6. r`This symbol represents the arccosh function as described in Abramowitz and Stegun, section 4.6. s`This symbol represents the arctanh function as described in Abramowitz and Stegun, section 4.6. t`This symbol represents the arcsech function as described in Abramowitz and Stegun, section 4.6. u`This symbol represents the arccsch function as described in Abramowitz and Stegun, section 4.6. v`This symbol represents the arccoth function as described in Abramowitz and Stegun, section 4.6. [\]^_`abcdefghijklmnopqrstuv[\]^_`abcdefghijklmnopqrstuv[\]^_`abcdefghijklmnopqrstuv[\]^_`abcdefghijklmnopqrstuvSafew/List of symbols defined in relation1 dictionaryx5This symbol represents the binary equality function. yThis symbol represents the binary less than function which returns true if the first argument is less than the second, it returns false otherwise. zThis symbol represents the binary greater than function which returns true if the first argument is greater than the second, it returns false otherwise.{7This symbol represents the binary inequality function. |This symbol represents the binary less than or equal to function which returns true if the first argument is less than or equal to the second, it returns false otherwise. }This symbol represents the binary greater than or equal to function which returns true if the first argument is greater than or equal to the second, it returns false otherwise. ~MThis symbol is used to denote the approximate equality of its two arguments. wxyz{|}~wxyz{|}~wxyz{|}~wxyz{|}~Safe,List of symbols defined in quant1 dictionaryThis symbol represents the universal ("for all") quantifier which takes two arguments. It must be placed within an OMBIND element. The first argument is the bound variables (placed within an OMBVAR element), and the second is an expression. This symbol represents the existential ("there exists") quantifier which takes two arguments. It must be placed within an OMBIND element. The first argument is the bound variables (placed within an OMBVAR element), and the second is an expression. bastiaan.heeren@ou.nl  provisional portable (depends on ghc) NonecRepresents a common misconception. In certain (most) situations, the two objects are not the same.   Safe +List of symbols defined in nums1 dictionaryThis symbol represents the constructor function for integers, specifying the base. It takes two arguments, the first is a positive integer to denote the base to which the number is represented, the second argument is a string which contains an optional sign and the digits of the integer, using 0-9a-z (as a consequence of this no radix greater than 35 is supported). Base 16 and base 10 are already covered in the encodings of integers. This symbol represents the constructor function for rational numbers. It takes two arguments, the first is an integer p to denote the numerator and the second a nonzero integer q to denote the denominator of the rational p/q. .A symbol to represent the notion of infinity. This symbol represents the base of the natural logarithm, approximately 2.718. See Abramowitz and Stegun, Handbook of Mathematical Functions, section 4.1. .This symbol represents the square root of -1. vA symbol to convey the notion of pi, approximately 3.142. The ratio of the circumference of a circle to its diameter. A symbol to convey the notion of the gamma constant as defined in Abramowitz and Stegun, Handbook of Mathematical Functions, section 6.1.3. It is the limit of 1 + 12 + 1Q3 + ... + 1/m - ln m as m tends to infinity, this is approximately 0.5772 15664. A symbol to convey the notion of not-a-number. The result of an ill-posed floating computation. See IEEE standard for floating point representations.    Safe ,List of symbols defined in logic1 dictionaryThis symbol is used to show that two boolean expressions are logically equivalent, that is have the same boolean value for any inputs. zThis symbol represents the logical not function which takes one boolean argument, and returns the opposite boolean value. This symbol represents the logical and function which is an n-ary function taking boolean arguments and returning a boolean value. It is true if all arguments are true or false otherwise. This symbol represents the logical xor function which is an n-ary function taking boolean arguments and returning a boolean value. It is true if there are an odd number of true arguments or false otherwise. This symbol represents the logical or function which is an n-ary function taking boolean arguments and returning a boolean value. It is true if any of the arguments are true or false otherwise. This symbol represents the logical implies function which takes two boolean expressions as arguments. It evaluates to false if the first argument is true and the second argument is false, otherwise it evaluates to true. /This symbol represents the boolean value true. 0This symbol represents the boolean value false.    Safe+List of symbols defined in list1 dictionary This symbol represents a mapping function which may be used to construct lists, it takes as arguments a function from X to Y and a list over X in that order. The value that is returned is a list of values in Y. The argument list may be a set or an integer_interval. QThis symbol represents the suchthat function which may be used to construct lists, it takes two arguments. The first argument should be the set which contains the elements of the list, the second argument should be a predicate, that is a function from the set to the booleans which describes if an element is to be in the list returned. nThis symbol denotes the list construct which is an n-ary function. The list entries must be given explicitly. Safe-List of symbols defined in linalg2 dictionaryThis symbol represents an n-ary function used to construct (or describe) vectors. Vectors in this CD are considered to be row vectors and must therefore be transposed to be considered as column vectors. sThis symbol is an n-ary constructor used to represent rows of matrices. Its arguments should be members of a ring. vThis symbol is an n-ary matrix constructor which requires matrixrow's as arguments. It is used to represent matrices. Safe *List of symbols defined in fns1 dictionaryThe domainofapplication element denotes the domain over which a given function is being applied. It is intended in MathML to be a more general alternative to specification of this domain using such quantifier elements as bvar, lowlimit or condition. cThis symbol denotes the domain of a given function, which is the set of values it is defined over. This symbol denotes the range of a function, that is a set that the function will map to. The single argument should be the function whos range is being queried. It should be noted that this is not necessarily equal to the image, it is merely required to contain the image. xThis symbol denotes the image of a given function, which is the set of values the domain of the given function maps to. HThe identity function, it takes one argument and returns the same value.[This symbol is used to describe the left inverse of its argument (a function). This inverse may only be partially defined because the function may not have been surjective. If the function is not surjective the left inverse function is ill-defined without further stipulations. No other assumptions are made on the semantics of this left inverse. ^This symbol is used to describe the right inverse of its argument (a function). This inverse may only be partially defined because the function may not have been surjective. If the function is not surjective the right inverse function is ill-defined without further stipulations. No other assumptions are made on the semantics of this right inverse. FThis symbol is used to describe the inverse of its argument (a function). This inverse may only be partially defined because the function may not have been surjective. If the function is not surjective the inverse function is ill-defined without further stipulations. No assumptions are made on the semantics of this inverse. fThis symbol represents the function which forms the left-composition of its two (function) arguments. $This symbol is used to represent anonymous functions as lambda expansions. It is used in a binder that takes two further arguments, the first of which is a list of variables, and the second of which is an expression, and it forms the function which is the lambda extraction of the expression    Safe/List of symbols defined in calculus1 dictionaryxThis symbol is used to express ordinary differentiation of a unary function. The single argument is the unary function. This symbol is used to express the nth-iterated ordinary differentiation of a unary function. The first argument is n, and the second the unary function. This symbol is used to express partial differentiation of a function of more than one variable. It has two arguments, the first is a list of integers which index the variables of the function, the second is the function. pThis symbol is used to represent indefinite integration of unary functions. The argument is the unary function. This symbol is used to represent definite integration of unary functions. It takes two arguments; the first being the range (e.g. a set) of integration, and the second the function. Safe ,List of symbols defined in arith1 dictionaryaThe symbol to represent the n-ary function to return the least common multiple of its arguments. iThe symbol to represent the n-ary function to return the gcd (greatest common divisor) of its arguments. <The symbol representing an n-ary commutative function plus. <This symbol denotes unary minus, i.e. the additive inverse. dThe symbol representing a binary minus function. This is equivalent to adding the additive inverse. :The symbol representing an n-ary multiplication function. This symbol represents a (binary) division function denoting the first argument right-divided by the second, i.e. divide(a,b)=a*inverse(b). It is the inverse of the multiplication function defined by the symbol times in this CD.#This symbol represents a power function. The first argument is raised to the power of the second argument. When the second argument is not an integer, powering is defined in terms of exponentials and logarithms for the complex and real numbers. This operator can represent general powering. A unary operator which represents the absolute value of its argument. The argument should be numerically valued. In the complex case this is often referred to as the modulus. A binary operator which represents its first argument "lowered" to its n'th root where n is the second argument. This is the inverse of the operation represented by the power symbol defined in this CD. Care should be taken as to the precise meaning of this operator, in particular which root is represented, however it is here to represent the general notion of taking n'th roots. As inferred by the signature relevant to this symbol, the function represented by this symbol is the single valued function, the specific root returned is the one indicated by the first CMP. Note also that the converse of the second CMP is not valid in general. An operator taking two arguments, the first being the range of summation, e.g. an integral interval, the second being the function to be summed. Note that the sum may be over an infinite interval. An operator taking two arguments, the first being the range of multiplication e.g. an integral interval, the second being the function to be multiplied. Note that the product may be over an infinite interval.    bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None X Xbastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe Y Z   Y Z bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe8 [ \ ] ^ _ ` a b c d e$ [ \ ] ^ _ ` a b c d e!bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe>First argument indicates whether the table has a header or not&-Renders as teletype or monospaced Ideas.Text.'Renders as italic text style.(Renders as bold text style., f g h i j      !"#$%&'()*+H43      !"#$%&'()*( 34    ! "#$%&'()*' f g h i j      !"#$%&'()*+"Safe,-.,-.,-.,-.bastiaan.heeren@ou.nl  provisional portable (depends on ghc) SafeDR/ k l0123456789:;<=>?@ABCDEFGHI/0123456789:;<=>?@ABCDEFGH89:;<=>34567?@012ABC/DEFGH/ k l0123456789:;<=>?@ABCDEFGHIE0#bastiaan.heeren@ou.nl  provisional portable (depends on ghc) SafeDRL mMNOPQRSTUVWXYZ[\]^_`aLMPQNORSTUVWXYZ[MNOPQRSTUVWXYZ[LL mMNOPQRSTUVWXYZ[\]^_`a$bastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneDIRiFor a minimal complete definition, provide an implemention for downs or allDowns. All other functions need an implementation as well, except for change. Note that a constructor (a -> f a) is not included in the type class to allow additional type class constraints on type a.dc n o p q r s t u vd w xe y zf { |g } ~h  ijklmnopq rstuvwxyz{|}~  ,cdefghimnpjkloqrstuvwxyz{|}~-qrsrijklmnoptuvwxyz{|}~hgfedcJc n o p q r s t u vd w xe y zf { |g } ~h  ijklmnopq rstuvwxyz{|}~  %bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None        0 0 0&bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe|A menu offers choices and preferences. It stores singleton bindings (thus acting as a finite map) and one special element (). It is an instance of the   and   type classes.Laws: ,   are all associative, and have  as their unit element.Nothing to choose from.Normal (unbiased) choice.Left-preference.Left-biased choice.-One of the alternatives in a list (unbiased).Singleton binding$Special element for denoting success4Equality with a comparison function for the elements*Returns all elements that are in the menu.YReturns only the best elements that are in the menu with respect to left-biased choices.KReturns only the best elements that are in the menu, with a given ordering.Is the menu empty?*Get an element from the menu by its index.(Only keep the best elements in the menu.5Generalized monadic bind, with the arguments flipped.DMaps a function over a menu that also takes the index of an element.!     5 3 3 33335'bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe&Type class for bi-directional arrows.  - should be used instead of arr8 from the arrow interface. Minimal complete definition:  -.,Instances should satisfy the following law:  getSingleton . singleton == JustA type class for functors that can be applied to a value. Transformation, Rule, and Strategy are all instances of this type class.Returns zero or one results>Checks whether the functor is applicable (at least one result)8If not applicable, return the current value (as default)MSame as apply, except that the result (at most one) is returned in some monad5      ,,      1(bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe%Tests whether the derivation is empty+Returns the number of steps in a derivationAll terms in a derivationAll steps in a derivationZThe triples of a derivation, consisting of the before term, the step, and the after term.7Apply a monadic function to each term, and to each step    )bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe"The root of the tree#Is this node an endpoint?$ All branches%aConstructs a node without branches; the boolean indicates whether the node is an endpoint or not&=Branches are attached after the existing ones (order matters) 'Returns the annotations at a given node($Returns all subtrees at a given node)eReturns all leafs, i.e., final results in derivation. Be careful: the returned list may be very long*dThe argument supplied is the maximum number of steps; if more steps are needed, Nothing is returned,Restrict the height of the tree (by cutting off branches at a certain depth). Nodes at this particular depth are turned into endpoints-9Restrict the width of the tree (by cutting off branches). FCommit to the left-most derivation (even if this path is unsuccessful) kFilter out intermediate steps, and merge its branches (and endpoints) with the rest of the derivation tree2-All possible derivations (returned in a list)3The first derivation (if any)42Return a random derivation (if any exists at all)! "#$%&' ()*+,- ./01234 56!$#"%&'()*+,-./01234!"#$%&'"#$()*,-+0/.1342! "#$%&' ()*+,- ./01234 56*bastiaan.heeren@ou.nl  provisional portable (depends on ghc) SafeDR91The type associated with a step in the first set.:"The ready predicate (we are done).;The firsts set.>The empty sequence.?Prepend a symbol to a sequence.@Append two sequences.ASingleton sequence.BSequential composition. 89:;<=>?@ABCD 89:;<=B>A@?C <=>?@AB89:;C89:;<=>?@ABCD?5@5+bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None ECType classfor accessing (and changing) the identifier of an entity.H3Type class for labeling entities with an identifierJ Type class J- for constructing identifiers. Examples are newId "algebra.equation", newId ("a", "b", "c"), and newId () for the empty identifier.MAbstract data type for identifiers with a hierarchical name, carrying a description. The data type provides a fast comparison implementation.N8Appends two identifiers. Both parameters are overloaded.O?Get the unqualified part of the identifier (i.e., last string).PUGet the list of qualifiers of the identifier (i.e., everything but the last string).QGet the qualified part of the identifier. If the identifier consists of more than one part, the parts are separated by a period ( ).RGet the current description.SiGive a description for the current entity. If there already is a description, both strings are combined.TShow the identifier.U2Compare two identifiers based on their names. Use compare+ for a fast ordering based on hash values.)EFGHIJKLM N OPQRSTUVWXYZ[\]^_`abcde1EFGHIJKLMNOPQRSTUMJKLNEFGOPQSRTUHI EFGHIJKLM N OPQRSTUVWXYZ[\]^_`abcdeN8,bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Safe fghijklm fghijklmhgfikljm fghijklm -bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None,n opqrst u vwxyz{|}~ nsrqpotuvwxyz{|}~tvwxyz{|}~unopqrsopqrs!n opqrst u vwxyz{|}~ .bastiaan.heeren@ou.nl  provisional portable (depends on ghc) SafeDR6Process data type with efficient support for sequencesUGeneralized equality of processes, which takes an equality function for the symbols.    bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None%&IMinimal complete definition: toView or both match and build.generalized monadic variant of match#Specialized version of traverseViewG    9  ;  4    /bastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneAT  0bastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneN        !"#$%&'()*+,-5     6     9        !"#$%&'()*+,-1bastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneAT>$A type class for types as referencesA,A data type for references (without a value)523456789:;< = >?@A BCDEFGH IJKLMNOPQRSTUVWXYZ[\24356879:;<=>?@ABCDEFGHIJKA>?@B=CDEF<GH6789:;2345IJK"23456789:;< = >?@A BCDEFGH IJKLMNOPQRSTUVWXYZ[\2bastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneaThis function returns the difference, except that the returned terms should be logically equivalent. Nothing can signal that there is no difference, or that the terms to start with are not equivalent.^_`a ^_`a`a^_^_`a 3bastiaan.heeren@ou.nl  provisional portable (depends on ghc) Noneb$Abstract data type for substitutionscReturns the empty substitutiond Returns a singleton substitutione Turns a list into a substitutionfCombines two substitutions. The left-hand side substitution is first applied to the co-domain of the right-hand side substitutionhsLookups a variable in a substitution. Nothing indicates that the variable is not in the domain of the substitutioni/Returns the domain of a substitution (as a set)jApply the substitutionb cdefghijklmno bcdefghijkl bcdihfjegklb cdefghijklmnof6j5k64bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None qrstu v wqrstuvwstuvrqw qrstu v w5bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None9;<=?AT$xyz{| } ~   xyz{|}~z{|}}~xyxyz{| } ~   1ibastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneD     xyz{|}~6bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None%&OTAAbstract data type for a context: a context stores an envrionent.Construct a context-Lift a rule to operate on a term in a contextWApply a function at top-level. Afterwards, try to return the focus to the old position$      7bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None                  8bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None%&OT=A type class for constructing a transformation. If possible,  makeTransK should be used. Use specialized constructor functions for disambiguation..      #      9bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None      :bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None    ;bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None<=)Abstract data type for representing rules Unique identifier of the rule 2Inspect whether or not the rule is buggy (unsound) uReturns whether or not the rule is minor (i.e., an administrative step that is automatically performed by the system)NA special (minor) rule that is never applicable (i.e., this rule always fails)7A special (minor) rule that always returns the identityaA special (minor) rule that checks a predicate (and returns the identity if the predicate holds) 2Perform the function after the rule has been fired&                                jbastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneM     <bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None  !"    !"=bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None:)#Allows all permutations of the list/3Apply a certain strategy or do nothing (non-greedy)0@Apply a certain strategy if this is possible (greedy version of /)18Repeat a strategy zero or more times (greedy version of ,)2:Apply a certain strategy at least once (greedy version of -)3RApply the strategies from the list exhaustively (until this is no longer possible) #$%&'()*+,-./0123#$%&'()*+,-./0123),-./0123&('*#+$% #$%&'()*+,-./0123>bastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneAOT8456789:;<=>?@ABCD !EFGH " #IJKLMNOPQRSTUVWXYZ[\]^_`abcdefg"456789:;<=>?@ABCDEFGHJIKLMNOPQRSTU&NKLMOPDEFGUFETQHIJRISJ@ABC=>?:;<789456#456789:;<=>?@ABCD !EFGH " #IJKLMNOPQRSTUVWXYZ[\]^_`abcdefgT1?bastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneDRhA path encodes a location in a strategy. Paths are represented as a list of integers and terms (the latter act as input for the dynamic strategies).k<The error prefix (i.e., without a location in the strategy).l4Make a prefix from a core strategy and a start term.mcConstruct a prefix by replaying a path in a core strategy: the third argument is the current term.oUTransforms the prefix such that only major steps are kept in the remaining strategy.pThe searchModePrefix transformation changes the process in such a way that all intermediate states can only be reached by one path. A prerequisite is that symbols are unique (or only used once).qReturns the current Path.rThe empty path. $ % &h 'i ( ) *j +klm ,nop -qrstuvwxyz hijklmnopqrst ikljmnopqhrst $ % &h 'i ( ) *j +klm ,nop -qrstuvwxyz@bastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneDORT }.A strategy which is labeled with an identifier~)Type class to turn values into strategies!Abstract data type for strategiesLabels a strategy with an identifier. Labels are used to identify substrategies and to specialize feedback messages. The first argument of  can be of type  .K, in which case the string is used as identifier (and not as description).!Removes the label from a strategy1Construct the empty prefix for a labeled strategy^Construct a prefix for a path and a labeled strategy. The third argument is the current term.gConstruct a prefix for a list of paths and a labeled strategy. The third argument is the current term.^Construct a prefix for a path and a labeled strategy. The third argument is the initial term.EReturns a list of all major rules that are part of a labeled strategyAApply a function to all the rules that make up a labeled strategyjUse a function as do-after hook for all rules in a labeled strategy, but also use the function beforehandCUse a function as do-after hook for all rules in a labeled strategy-} /~ 0 1 2}~}~)} /~ 0 1 2Abastiaan.heeren@ou.nl  provisional portable (depends on ghc) None<Put two strategies in sequence (first do this, then do that)=Choose between the two strategies (either do this or do that)Interleave two strategiesAlternate two strategies/Prefixing a basic rule to a strategy atomicallyFInitial prefixes (allows the strategy to stop succesfully at any time):The strategy that always succeeds (without doing anything)The strategy that always fails5Makes a strategy atomic (w.r.t. parallel composition))Puts a list of strategies into a sequence)Combines a list of alternative strategies)Merges a list of strategies (in parallel)#Allows all permutations of the list1Repeat a strategy zero or more times (non-greedy)3Apply a certain strategy at least once (non-greedy)*Apply a strategy a certain number of times3Apply a certain strategy or do nothing (non-greedy)eChecks whether a predicate holds for the current term. The check is considered to be a minor step.Check whether or not the argument strategy cannot be applied: the result strategy only succeeds if this is not the case (otherwise it fails).8Repeat a strategy zero or more times (greedy version of ):Apply a certain strategy at least once (greedy version of )@Apply a certain strategy if this is possible (greedy version of )aChoose between the two strategies, with a preference for steps from the left hand-side strategy.tLeft-biased choice: if the left-operand strategy can be applied, do so. Otherwise, try the right-operand strategy2Repeat the strategy as long as the predicate holds-Repeat the strategy until the predicate holdsRApply the strategies from the list exhaustively (until this is no longer possible)?The structure of a dynamic strategy depends on the current term]Create a strategy from a dependency graph with strategies as nodes Does not check for cycles    5322544Bbastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneDR?Apply a strategy at least once, but collapse into a single step! 3 4 5 6 7 8 9 : ; < = > ? 3 4 5 6 7 8 9 : ; < = > ?Cbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None22345Dbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None?Returns a list of all strategy locations, paired with the label @ A @ AEbastiaan.heeren@ou.nl  provisional portable (depends on ghc) Noneleft-most innermost traversal.left-most outermost traversal.; 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 [  * 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 [kbastiaan.heeren@ou.nl  provisional portable (depends on ghc) Noneehiknoqrst}~9}~ikhrstqonFbastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneAOT7 \HValues with a dynamic type that is parameterized over the exercise term. The status of an exercise class.<A released exercise that has undergone some thorough testing4A released exercise, possibly with some deficiencies%An exercise that is under development-An exercise for experimentation purposes only1For constructing an empty exercise, use function ( or ).6Identifier that uniquely determines the exercise: see E) for how to use values with identifiers.The status of the exercise.QParser for expressions of the exercise class, which either results in an error ( ]) or a result ( ^).hPretty-printer for expressions of the exercise class. Pretty-printing should be the inverse of parsing.UTests wether two expressions (with their contexts) are semantically equivalent. Use 7F for defining the equivalence check when the context is not relevant.Tests wether two expressions (with their contexts) are syntactically the same, or nearly so. Expressions that are similar must also be equivalent. Use 7: if the context is not relevant for the similarity check.Predicate suitable identifies which expressions can be solved by the strategy of the exercise class. It acts as the pre-condition of the strategy.Predicate ready checks if an expression is in a solved form (accepted as a final solution). It acts as the post-condition of the strategy.=The rewrite strategy that specifies how to solve an exercise.Is it possible to restart the rewrite strategy at any point in time? Restarting the strategy is needed when a student deviates from the strategy (detour). By default, restarting is assumed to be possible.PAre there extra rules, possibly buggy, that do not appear in the strategy? Use - to get all rules. The rule ordering is a tiebreaker in situations where more than one rule can be used (e.g. feedback services onefirst and derivation; other feedback services return all possible rules).!A navigator is needed for traversing the expression and for using the traversal strategy combinators. By default, an exercise has no navigator."<A finite list of examples, each with an assigned difficulty.#9A generator for random exercises of a certain difficulty.$DAn exercise generator for testing purposes (including corner cases).%%Conversion to and from the (generic) L datatype. Needed for representing the expression in the OpenMath standard.&iRepresentation of the type of expression: this provides a back door for exercise-specific functionality.'OExtra exercise-specific properties, not used by the default feedback services.(The (H constructor function provides sensible defaults for all fields of the  record.)In addition to the defaults of ($, this constructor sets the fields , , and %.*$Pretty print a value in its context.+,Checks if an expression is in a solved form.,GChecks if the expression is suitable and can be solved by the strategy.-3Returns a sorted list of rules, without duplicates..4Finds a rule of an exercise based on its identifier./Makes a rule ordering based on a list of values with identifiers (e.g., a list of rules). Rules with identifiers that are not in the list are considered after the rules in the list, and are sorted based on their identifier.0An exercise with the status  or 1An exercise that is not public2uParser for difficulty levels, which ignores non-alpha charactes (including spaces) and upper/lower case distinction.34Assigns a difficulty level to a list of expressions.5>Returns the examples of an exercise class lifted to a context.66Puts a value into a context with an empty environment.7YFunction for defining equivalence or similarity without taking the context into account.8,Encapsulates a type representation (use for & field).97Set an exercise-specific property (with a dynamic type):fSet an exercise-specific property (with a dynamic type) that is parameterized over the exercise term.;5Get an exercise-specific property (of a dynamic type)<dGet an exercise-specific property (of a dynamic type) that is parameterized over the exercise term.=}Makes a random exercise generator from a QuickCheck generator; the exercise generator ignores the difficulty level. See the # field.>nMakes a random exercise generator based on a QuickCheck generator for a particular difficulty level. See the # field.?`Returns a random exercise of a certain difficulty with some random number generator. The field #W is used; if this is not defined (i.e., Nothing), one of the examples is used instead.@CReturns a list of randomly generated terms of a certain difficulty.AhShows the default derivation for a given start term. The specified rule ordering is used for selection.BVShows all derivations for a given start term. Warning: there can be many derivations.CiPrints the default derivation for a given start term. The specified rule ordering is used for selection.DWPrints all derivations for a given start term. Warning: there can be many derivations.E`Adds the difference of the environments in a derivation to the steps. Bindings with identifier locationH are ignored. This utility function is useful for printing derivations.R _ ` a \ b c      !"#$%&'()*+,-./0123456789: d;< e f=>?@ABCD gEFGHIJKLMNC/0     ! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGC !"#$%&'()*+,-./01     2345678/09;:<=>?@ABCDEFG1 _ ` a \ b c      !"#$%&'()*+,-./0123456789: d;< e f=>?@ABCD gEFGHIJKLMNGbastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneTUVWXYZ[\]^_`a TUWVXYZ[\]^_`XYTUVWaZ[\]^_` TUVWXYZ[\]^_`aHbastiaan.heeren@ou.nl  provisional portable (depends on ghc) NonebAlias for strategy combinator failcAlias for strategy combinator notdAlias for strategy combinator repeateAlias for strategy combinator  replicatefAlias for strategy combinator sequencegAlias for strategy combinator untilbcdefg  /0pqrszEFGHIJKLMNOPQRSTU     24356879:;<=>?@ABCDEFGHIJKxyz{|}~     hiknoqrst}~     ! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGbcdefgbcdefgbcdefgIbastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneOThijkl h i jhijklhiljkhijkl h i jJbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None%mnopqrstuvwxyz{|}~#mnopqrstvuwxyz{|~}%{|}~wxyztuvmnopqrsmnopqrstuvwxyz{ |}~Kbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None k l m n o p k l m n o pLbastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneMbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None) q r q rNbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None s t u v w x y z { | } ~   s t u v w x y z { | } ~  Obastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneDR EProduces a 80 bit random number, represented as 20 hexadecimal digits   ;;   Pbastiaan.heeren@ou.nl provisionalportable (depends on ghc)None:KThe Record datatype is based on the Ideas Request Logging Schema version 2.0Add record information from the Request datatypeAAdd record information from the state (userid, sessionid, taskid)&      Qbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None       Rbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None%&9:;OT\      !"#$%&'()*+,-. /0123 456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`N     %"!'($& #)*+,-.0/123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVP./012/0 !"#$%&'(   )*+,-  3IED=FGH>JST9B:?<ORQ7KLA5486@UMPN;CV9       !"#$%&'()*+,-. /0123 456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`!3&5+285Sbastiaan.heeren@ou.nl  provisional portable (depends on ghc) Noneabcdefghijklmnopqrstabjkhcdefgilmnopqrabcdefghijklmnopqr a bcdefghijklmnopqrstTbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None u vwxyz{|}~ uzywvx{|}~uvwxyz~xvwyz{|}u vwxyz{|}~Ubastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneOT?Uses exercise pretty-printer in case latex encoding is missing.?Uses exercise pretty-printer in case latex encoding is missing.L              %A         5Vbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None%&  Wbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None%&  Xbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None9;<=DR DContinue with a prefix until a certain strategy location is reached.     Ybastiaan.heeren@ou.nl  provisional portable (depends on ghc) None  Zbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None    [bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None9;<= \bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None%&OT       ]bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None9;<=     ^bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None%&                    _bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None              `bastiaan.heeren@ou.nl  provisional portable (depends on ghc) None$             ! " # $              ! " # $abastiaan.heeren@ou.nl  provisional portable (depends on ghc) None                       bbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None9;<=  %  %cbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None%& & ' ( ) * + , - . / 0 1 2 3 4 5 6 & ' ( ) * + , - . / 0 1 2 3 4 5 6dbastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneOT0 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE 7 8 9 : ;F < =) !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF) !"#$%&'()*+,-./0123EF456789:;<=?>@ACDB !"#$%&'()*+,-./0123456789:;<=>?@ABCDE 7 8 9 : ;F < =ebastiaan.heeren@ou.nl  provisional portable (depends on ghc) None%&2 >G ? @ 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 nGG2 >G ? @ 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 nfbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None H o p q r s t u v wHH H o p q r s t u v wgbastiaan.heeren@ou.nl  provisional portable (depends on ghc) None,IJ x y z { | } ~  IJIJ,IJ x y z { | } ~  hbastiaan.heeren@ou.nl  provisional portable (depends on ghc) NoneKLM .abjkhcdefgilmnopqrIJKLMKLMIJ.KLM lmnlmolmplqrlqsltulmvlmwlmxlmylmzlm{lm|lm}lm~lmlmlmlllllqlqlqlq                             !"# $ % & ' ( ) * + , - . / 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 V W X X Y Z [ \ ] ^ _ ` a a b c d e f g h h ` i j k l m n o p q r s t u v w x y z { | } ~   klmWXXYZ[v\      !"#$%&'()*+,-./012345 6 7 8 9 : ; < = > ? @ A B C D E A 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!{!|!}!~!!!!!!!!!!"""#####o##################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $ $ $ $$$$%%%%%%%%%&&D&&&&& &!&"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&1&2&3'4'5'6'7'8'9':';'<'G'='>'?'@'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)g)y)z){)|)})~)))))))))))))))*****E********+++++++++++++++++++++++++++++++++,,,,,,,,---------------------------------............      !"#$%&'()*+/,/-/.///0/1/2/30405060708090:0;0<0=0>0?0@0A0B0C0D0E0F0G0H0I0J00K0L0M0N000O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~001111111111111`11111111111111111111111111111112222333333333#333333444444455555555555555555555555556666666666666666666666677777777788888888888888 8 8 8 8 8888888888888888899 9!9"9#9$9%9&9'9(9)9*9+9,9-9.9/90919293949596: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={=|=}=~>>>>>>>>>>>>>>>>>>>K>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAvAAAqAA ArAAAtAwAxAyAzAAA|A}A{AAAAA~AABBBBBBBBBBBBBBBpBBBB B B B CsCuC CCrCDDDDEEEEEEEEEEEEE E!E"E#E$E%E&E'E(E)E*E+E,E-E.E/E0E1E2E3E4F5F6F7F8F9F:F;FF<F=F>F?F@FAFBFCFDFEFFFGFHFFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF[F\F]F^FF_F`FaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFF{F|F}G~GGGGGGGGGGGGGHHHHHHIIIIIJJJJJJJJJ\JEJJJJJJJJBJJJJJJJJcJJJJJJJJJJJJJJJKLLLLMMMMMMMMMMMMMMMMMMMM)MMMMMMMMMMMMMMMMMMMNNOOOOOOOOOOOOOOOOOHOOOOOOPPPPPPPPPPcPPPPPPPUPP P P P P(P P PPPPPPPQQQQQQQQQQQQ Q!Q"R#R$R%R&R@RRRCRRRRR'RRDRR(RR)R*R+RFR,R-R.R/R0R1R2R3R4R%R5R6R7R8R9R&R:R;R<R=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR[R\R]R^R_R`RaRbRcRdReRfRgRhRiRjRkSlSmSnSoSpSqSrSsStSSSuSvSwSxSySzS{S|S}T~TTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU;UUUUUUUUUUUUUUUUUUUUUUUUVVWWXXXXXXXYZZZZZZZZZVZZUZZZZ[[[9[[[[[[[[[[[[[[\\\]]9]]]]]]]^_```````````````````aaaaaaaaaa abb bb b b bbcccddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:e;f<g=g>h?h@hABCDlEFlEGlE,HIJlKLlKMlKNlKOlKPlEQlERlESlETlEUlEVlEWlEXlEYlEZlE[lE\lE]lE^lE_lE`lEalEblEclEdlEelEflEglEhlEilEjlEklEllEmlEnlEolEplqrlqsltultuvwxyz{|}~lqlqlqlqllllllllllLlLllllllllllllllll{   (77                                                         !  "  #  $  %  &  '  (  )  *  +  ,  - . / 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 0 9 0 : 0 ; 0 < 0 = 0 0 > 0 ? 0 @ 0 A 0 B 0 C D E F D E G D E H D E I D E J D E K D E L D M N D M O D M D M P D M Q D M R D S T D U V D U W D U V D U X D U Y D U Z D U [ D U \ D U ] D U ^ D U _ D U ` D U a D U b D c D c d D c e D c f D c g D c h D c i D c j D c k D c l D c m D c n D c D cy D cx D c o D c p D q r D q s D q t D q u D v w D v x D v y D v z D v { D v | D v } D v ~ D v  D v D v D v D v D v D v D vx D v D v D v D v D vz D v D { D D D D  D  D D D  D D D  D D D D D D D w D D D D D D  D  D  D  D D  D  D D D  D D  D D D D D D D D D  D  D  D                j i  ,+  y  Y              b             [                                     j          !  "  # $ % &  ' ( ) *!c! +! ,!s! - .# /$ 0$ 1$ 2$ 3$ 4$ 5$ 6$ 7$ 8$$ 9$ :$ ;$ <$ =$ >$ ?$ @$ A$ $M$ B$ C$ D$ E$ F$ G$ H% I% I% J% K%% L% M% N% Olq Plq Q&.& R&K&3& S& T& U' V(C) W) X) Y) Z) 6lq [++ \+ ]+ ^+ _+ `+ a+ b, c, d- e- f-- g- h- i- j- k- l-Z- m. n o p q r s t u vy w x y /%/ q/ z/ {/ |/ }/ r00 ~11 111 1 1D1 1 1 2 2 2 33 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 6 66 6 6 6 6 6 6 6 6 6 6 77 727 7 7 7 7 7 7 7 8 818 8 8 8 8 8 8 8 8 9 9 9 : : ; ; ; ;C; ; < => > > > ? ? ? ??? ? ? ? ? lqF@ @@ @ B B B B B B B B B B B B B D D E E E E E E E E E E EEE EDE E E E E E E E E E EE E Fl  l  F F F F F F F F F I I I K K KK K K MMN NN N N N N N NN N N N N N N N N N N N O OO P P P P P P P Q Q Q Q !Q "Q #RRR $R %T~UxUxU &U 'U (U )U *U +U +U ,U -U .U /U 0U 1U 2U 3U 4lq 5lq 6l 7 l 7 8l 7 9l 7 :l 7 ;l 7 <l 7 =l 7 >l 7 >l 7 ?lm @lm Alm Blm Clm Dlm Elm Flm Flm Glm Hlm Ilm Jlm Jlm Klm Ll M Nlq Olq Plq Qlq Rlqlq lq SlqwV TV UV VV WV XV YV ZV [V \V ]V ^V _W VW XW YW \W ^W _W `W ]W aW bW cW dX eXX fX gX hY iY jY kY lZ mZ n\ o\ o\ p\ q\ r\ s\ t\] u^ v^ w^ x^ y^^ z^ {^ |^ }^ ~^ ^ ^ _ _ _ _ _ _ _ _ ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` byc c yc c c xc c {c |c c c c c ~c c c c d d d d d d d e e e e e ye e e e e e e e e e e e e e e }e e e e e e e e {e e e e e ee e e e e e e e e e e e e e e f f f f f f f f f g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g h h h h h ideas-1.6-HbL4zcTJqrv579SbavJ76uIdeas.Common.ViewIdeas.Utils.ParsingIdeas.Common.Traversal.UtilsIdeas.Text.LatexIdeas.Utils.UniplateIdeas.Utils.TypeableIdeas.Utils.TestSuiteIdeas.Utils.StringRefIdeas.Utils.QuickCheckIdeas.Utils.PreludeIdeas.Utils.BlackBoxTestsIdeas.Text.XML.DocumentIdeas.Text.UTF8Ideas.Text.XML.UnicodeIdeas.Text.XML.ParserIdeas.Text.XML.InterfaceIdeas.Text.XMLIdeas.Text.OpenMath.SymbolIdeas.Text.OpenMath.Object&Ideas.Text.OpenMath.Dictionary.Transc1(Ideas.Text.OpenMath.Dictionary.Relation1%Ideas.Text.OpenMath.Dictionary.Quant1Ideas.Text.OpenMath.FMP$Ideas.Text.OpenMath.Dictionary.Nums1%Ideas.Text.OpenMath.Dictionary.Logic1$Ideas.Text.OpenMath.Dictionary.List1&Ideas.Text.OpenMath.Dictionary.Linalg2#Ideas.Text.OpenMath.Dictionary.Fns1(Ideas.Text.OpenMath.Dictionary.Calculus1%Ideas.Text.OpenMath.Dictionary.Arith1Ideas.Text.OpenMath.TestsIdeas.Text.JSONIdeas.Text.HTMLIdeas.Main.RevisionIdeas.Common.Traversal.Iterator Ideas.Common.Traversal.NavigatorIdeas.Common.Traversal.TestsIdeas.Common.Strategy.ChoiceIdeas.Common.ClassesIdeas.Common.DerivationIdeas.Common.DerivationTreeIdeas.Common.Strategy.SequenceIdeas.Common.IdIdeas.Common.Rewriting.AC Ideas.Common.Strategy.CyclicTreeIdeas.Common.Strategy.ProcessIdeas.Common.PredicateIdeas.Common.Rewriting.TermIdeas.Common.Environment!Ideas.Common.Rewriting.Difference#Ideas.Common.Rewriting.Substitution"Ideas.Common.Rewriting.Unification"Ideas.Common.Rewriting.RewriteRuleIdeas.Common.Context!Ideas.Common.Rewriting.Confluence Ideas.Common.Rule.TransformationIdeas.Common.Rule.ParameterIdeas.Common.Rule.RecognizerIdeas.Common.Rule.AbstractIdeas.Common.Strategy.SymbolIdeas.Common.Strategy.Derived"Ideas.Common.Strategy.StrategyTreeIdeas.Common.Strategy.PrefixIdeas.Common.Strategy.Abstract!Ideas.Common.Strategy.Combinators#Ideas.Common.Strategy.ConfigurationIdeas.Common.Strategy.LegacyIdeas.Common.Strategy.LocationIdeas.Common.Strategy.TraversalIdeas.Common.ExerciseIdeas.Common.ExerciseTestsIdeas.Common.LibraryIdeas.Encoding.OpenMathSupportIdeas.Encoding.RequestIdeas.Encoding.RulePresenterIdeas.Encoding.RulesInfo#Ideas.Service.FeedbackScript.Syntax#Ideas.Service.FeedbackScript.ParserIdeas.Service.StateIdeas.Encoding.LoggingIdeas.Main.CmdLineOptionsIdeas.Service.TypesIdeas.Service.DomainReasonerIdeas.Encoding.OptionsIdeas.Encoding.EncoderIdeas.Encoding.DecoderJSONIdeas.Encoding.DecoderXML"Ideas.Service.ProblemDecompositionIdeas.Encoding.StrategyInfoIdeas.Service.BasicServicesIdeas.Service.DiagnoseIdeas.Encoding.EvaluatorIdeas.Service.SubmitIdeas.Encoding.EncoderJSONIdeas.Encoding.ModeJSON Ideas.Service.FeedbackScript.Run%Ideas.Service.FeedbackScript.AnalysisIdeas.Service.FeedbackTextIdeas.Encoding.EncoderXMLIdeas.Encoding.LinkManagerIdeas.Encoding.EncoderHTMLIdeas.Encoding.ModeXMLIdeas.Service.ServiceListIdeas.Main.DefaultIdeas.Common.RewritingIdeas.Common.RuleIdeas.Common.Strategybase Control.Arrowarrfirst|||GHC.Base<*>*> Control.Monad>=>&&&***secondArrow zeroArrow ArrowZero<+> ArrowPlus+++rightleft ArrowChoiceControl.Category>>><<< Data.Monoid<> Data.Functor<$><**><$<*mplus&uniplate-1.6.12-Cortj3mo21G3qeBbCR8j1pData.Generics.Uniplate.Direct||*|-|*plate!Data.Generics.Uniplate.OperationsparaholescontextsrewriteMrewrite transformM transformchildrenuniversedescendMdescenduniplateUniplate HasTypeable getTypeable IsTypeabletypeablecastFromcastTo castBetween gcastFromgcastTo gcastBetween$fHasTypeableIsTypeable HasRatingratingrateRating HasStatus getStatusStatusMessage messageLinesResult nrOfTests nrOfWarnings nrOfErrors TestSuitesuite usePropertyusePropertyWith assertTrue assertNull assertEquals assertMessageassertIOassertMessageIO onlyWarnings rateOnError runTestSuiterunTestSuiteResult subResults topMessages allMessages findSubResult justOneSuite timeInterval printSummary makeSummarymessagewarningisOk isWarningisError$fHasRatingRating$fMonoidRating$fMonoidStatus$fHasRatingMessage$fHasStatusMessage$fMonoidMessage $fShowMessage$fHasRatingResult$fHasStatusResult$fMonoidResult $fShowResult$fMonoidTestSuite $fEqStatus $fOrdStatus $fEqRating $fOrdRating $fEqMessage StringRef stringReftoString tableStatus $fEqStringRef$fOrdStringRefArbGen generator generatorsarbGenconstGen constGensunaryGen unaryArbGen unaryGens binaryGen binaryGenstoArbGencommonuncommonrarechangeFrequency$fMonoidArbGen ShowStringfromShowStringSomereadIntreadMsubsets isSubsetOf cartesiandistinctallsamefixpoint splitAtElemsplitsWithElem timedSecondsfst3snd3thd3headM findIndexM elementAtchangeAt replaceAtlist$fReadShowString$fShowShowString$fEqShowString$fOrdShowStringUnbalancedError NotClosed NotOpened parseSimplecompleteskipnaturalOrFloatfloat<..>rangesstopOnbalanced$fShowUnbalancedError TestRunner blackBoxTestsExternalTextDecl ConditionalIncludeIgnorePublicID ExternalIDSystemPublic EntityValueAttValue EntityDefAttDef DefaultDeclRequiredImpliedValueFixedAttTypeIdType IdRefType IdRefsType EntityType EntitiesType NmTokenType NmTokensType StringTypeEnumerationType NotationTypeCPChoiceSequence QuestionMarkStarPlusCPName ContentSpecEmptyAnyMixedChildren DocTypeDecl ElementDecl AttListDecl EntityDecl NotationDecl DTDParameterDTDConditionalDTDContentElementname attributescontentXMLTaggedCharDataCDATA ReferenceXMLDoc versionInfoencoding standalonedtd externalsroot ParameterCharRef EntityRef Attribute:= AttributesName prettyXML prettyElement$fPrettyElement $fPrettyXML$fPrettyParameter$fPrettyReference$fPrettyAttribute $fShowElement $fShowXML$fShowParameter$fShowReference$fShowAttributeencodedecodeencodeMdecodeMisUTF8allBytes propEncodingisLetter isExtenderisDigitisCombiningChardecodingdocument extSubset extParsedEnt compactXML normalizeparseXML findAttribute findChildren findChildgetData XMLBuilderBuildXML.=. unescapedbuildertagstringtextelementemptyTagInXMLtoXML listToXMLfromXML listFromXMLAttrListAttr parseXMLFilemakeXMLmwhenmunless fromBuilder$fBuildXMLXMLBuilder$fMonoidXMLBuilderSymbol makeSymbol extraSymbol dictionary symbolName showSymbolOMOBJOMIOMFOMVOMSOMAOMBINDgetOMVs xml2omobj omobj2xml$fUniplateOMOBJ $fInXMLOMOBJ $fShowOMOBJ $fEqOMOBJ transc1List logSymbollnSymbol expSymbol sinSymbol cosSymbol tanSymbol secSymbol cscSymbol cotSymbol sinhSymbol coshSymbol tanhSymbol sechSymbol cschSymbol cothSymbol arcsinSymbol arccosSymbol arctanSymbol arcsecSymbol arccscSymbol arccotSymbol arcsinhSymbol arccoshSymbol arctanhSymbol arcsechSymbol arccschSymbol arccothSymbol relation1ListeqSymbolltSymbolgtSymbol neqSymbol leqSymbol geqSymbol approxSymbol quant1List forallSymbol existsSymbolFMPquantor metaVariables leftHandSiderelation rightHandSidetoObjecteqFMPbuggyFMP nums1ListbasedIntegerSymbolrationalSymbolinfinitySymboleSymboliSymbolpiSymbol gammaSymbol naNSymbol logic1ListequivalentSymbol notSymbol andSymbol xorSymbolorSymbol impliesSymbol trueSymbol falseSymbol list1List mapSymbolsuchthatSymbol listSymbol linalg2List vectorSymbolmatrixrowSymbol matrixSymbolfns1ListdomainofapplicationSymbol domainSymbol rangeSymbol imageSymbolidentitySymbolleftInverseSymbolrightInverseSymbol inverseSymbolleftComposeSymbol lambdaSymbol calculus1List diffSymbol nthdiffSymbolpartialdiffSymbol intSymbol defintSymbol arith1List lcmSymbol gcdSymbol plusSymbolunaryMinusSymbol minusSymbol timesSymbol divideSymbol powerSymbol absSymbol rootSymbol sumSymbol productSymbolToLatextoLatex toLatexPrec toLatexListLatexcommasbracketsparensarraycommand $fToLatexInt $fToLatexChar$fToLatexMaybe $fToLatex[] $fMonoidLatex$fIsStringLatex $fShowLatex RPCHandler RPCResponseResponseresponseResult responseError responseIdInJSONtoJSON listToJSONfromJSON listFromJSONNumberIDKeyJSONStringBooleanArrayObjectNull compactJSON parseJSONlookupMjsonRPC$fArbitraryNumber$fArbitraryJSON$fInJSONRPCResponse$fInJSONRPCRequest$fShowRPCResponse$fShowRPCRequest$fInJSONIOException $fInJSON(,,,) $fInJSON(,,) $fInJSON(,) $fInJSON[] $fInJSONBool $fInJSONChar$fInJSONDouble$fInJSONInteger $fInJSONInt $fShowJSON $fShowNumber $fEqNumber$fEqJSONHTMLPage HTMLBuildershowHTMLaddCSS addScripthtmlPagelinkh1h2h3h4h5h6preTextprehrbrttTextultable keyValueTablespacesspacebulletimagedivClass spanClass highlightXMLidAclassAstyleAtitleAttitalicboldbigsmall$fInXMLHTMLPage ideasVersion ideasRevisionideasLastChangedMirrorWrapperwrapunwrapFocusUnfocusfocusfocusMunfocusUpdateupdatecurrentchangereplacechangeMchangeG liftFocus unliftFocus liftWrapper unliftWrapper mapWrapper makeMirror>|<safefixpfixpl$fWrapperMirror $fShowMirror $fEqMirror ListIteratorIteratornextpreviousfinalpositionisFirstisFinalhasNext hasPrevious searchForwardsearchBackward searchNextsearchPrevious searchWith$fArbitraryListIterator$fUpdateListIterator$fFocusListIterator$fIteratorListIterator$fShowListIterator$fIteratorMirror$fEqListIteratorUniplateNavigatorLeafs Horizontal LevelOrder PostOrderPreOrder NavigatorupdowndownLastchildnrlocationLocation fromLocation toLocationisTopisLeafhasLefthasRighthasUphasDowntopleftMost rightMost leftMostLeaf rightMostLeafdownsdownToaritydepthlevel levelNext levelPrevious leftMostAt rightMostAt navigateTonavigateTowards makePreOrder makePostOrdermakeLevelOrdermakeHorizontal makeLeafs$fArbitraryUniplateNavigator$fFocusUniplateNavigator$fUpdateUniplateNavigator$fNavigatorUniplateNavigator$fEqUniplateNavigator$fShowUniplateNavigator$fUpdateStrIterator$fFocusStrIterator$fIteratorStrIterator$fFocusStrNavigator$fNavigatorStrNavigator$fIteratorLeafs $fUpdateLeafs$fWrapperLeafs$fIteratorHorizontal$fUpdateHorizontal$fWrapperHorizontal$fIteratorLevelOrder$fUpdateLevelOrder$fWrapperLevelOrder$fUpdatePostOrder$fWrapperPostOrder$fIteratorPreOrder$fUpdatePreOrder$fWrapperPreOrder$fNavigatorMirror$fMonoidLocation$fShowLocation $fEqLocation $fOrdLocation$fShowPreOrder $fEqPreOrder$fShowPostOrder $fEqPostOrder$fIteratorPostOrder$fShowLevelOrder$fEqLevelOrder$fShowHorizontal$fEqHorizontal $fShowLeafs $fEqLeafs testIterator testNavigatortestslistGenuniGen $fArbitraryT $fUniplateT$fShowT$fEqTMenuempty.|../.|>choice preferenceorelse|->doneMenuhasDoneeqMenuByelemsbests bestsOrderedisEmpty getByIndexcutonMenuonMenuWithIndex $fFunctorMenu $fChoiceMenu$fEqMenu $fChoice(->) $fChoice[]MinorminorsetMinorisMinorisMajorBuggybuggysetBuggyisBuggy<&&><||> complement BoolValuetruefalsefromBoolisTrueisFalseFixfix BiFunctorbiMapmapFirst mapSecondBiArrow<->!-><-! Container singleton getSingletonApplyapplyAllapply applicableapplyDapplyM applyListmapBothandsorsimplies equivalent $fBoolean(->) $fBooleanBool$fBoolValue(->)$fBoolValueBool$fBiFunctor(,)$fBiFunctorEither$fContainerSet $fContainer[] DerivationemptyDerivationprependextendderivationLengthtermsstepstriples firstTermlastTermlastStep withoutLast updateSteps derivationM$fBiFunctorDerivation$fFunctorDerivation$fShowDerivationDerivationTreeendpointbranches singleNode addBranchesmakeTreesubtreesleafs lengthMaxupdateAnnotationsrestrictHeight restrictWidthsortTreemergeMaybeSteps cutOnStep cutOnTerm derivations derivationrandomDerivation$fBiFunctorDerivationTree$fFunctorDerivationTree$fShowDerivationTreeFirstsElemreadyfirstsSymdone~>.*.singlesequence firstsTree$fSequence(->)HasIdgetIdchangeIdIdentify@>IsIdnewIdconcatIdId# unqualified qualifiers qualification descriptiondescribeshowId compareId $fHasIdEither $fHasIdId $fIsIdEither $fIsIdMaybe $fIsId(,,) $fIsId(,)$fIsId()$fIsId[] $fIsIdChar$fIsIdId $fArbitraryId $fMonoidId$fOrdId$fEqId$fReadId$fShowId PairingsPair PairingsListPairings pairingsNone pairingsC pairingsApairingsMatchA pairingsAC CyclicTreeAlgfNodefLeaffLabelfRecfVar CyclicTree shrinkTreenodenode0node1node2leaflabelisNodeisLabel replaceNode replaceLabel replaceLeaffold foldUnwindemptyAlg monoidAlg$fArbitraryCyclicTree$fFixCyclicTree$fTraversableCyclicTree$fFoldableCyclicTree$fMonadCyclicTree$fApplicativeCyclicTree$fFunctorCyclicTree$fBiFunctorCyclicTree$fShowCyclicTreeProcess runProcessmenuwithMenu eqProcessBy$fFirstsProcess $fFixProcess$fSequenceProcess$fChoiceProcess$fFunctorProcess $fEqProcess ViewPackageLiftViewliftView liftViewIn IsomorphismfromtoViewIsViewbuildtoViewMatcher IsMatchermatchmatchermatchM belongsToviewEquivalentviewEquivalentWith makeMatcher canonical canonicalWithcanonicalWithM isCanonicalisCanonicalWithsimplify simplifyWith simplifyWithMmakeView matcherViewidentityinverseswapViewlistView traverseView$<propIdempotence propSoundnesspropNormalForm$fHasIdViewPackage$fIdentifyIsomorphism$fHasIdIsomorphism$fIsViewIsomorphism$fIsMatcherIsomorphism$fArrowChoiceIsomorphism$fBiArrowIsomorphism$fArrowIsomorphism$fCategoryTYPEIsomorphism$fIdentifyView $fHasIdView $fIsViewView$fIsMatcherView$fArrowChoiceView $fBiArrowView $fArrowView$fCategoryTYPEView$fIsMatcherMatcher$fCategoryMatcher$fArrowMatcher$fArrowZeroMatcher$fArrowPlusMatcher$fArrowChoiceMatcher Predicate predicate predicateView evalPredicate$fIdentifyPredicate$fHasIdPredicate$fBooleanPredicate$fBoolValuePredicate WithMetaVarsmetaVar getMetaVarWithVarsvariable getVariable WithFunctionssymbolfunction getSymbol getFunctionIsTermtoTerm toTermListfromTerm fromTermListTermTVarTConTListTNumTFloatTMeta isAssociative newSymbolmakeAssociativetermView nothingSymbol fromTermM fromTermWithisSymbol isFunctionunarybinaryternaryisUnaryisBinary isVariablevarsvarSethasVar withoutVar hasSomeVarhasNoVar variableView isMetaVarmetaVars metaVarSet hasMetaVar nextMetaVar$fArbitraryTerm$fWithMetaVarsTerm$fWithVarsTerm$fWithFunctionsTerm $fIsTermMaybe $fIsTermMap $fIsTermSet $fIsTerm[] $fIsTermBool $fIsTermChar$fIsTermDouble$fIsTermInteger $fIsTermInt$fIsTermEither $fIsTerm(,)$fIsTermShowString $fIsTermTerm$fUniplateTerm $fHasIdSymbol $fReadSymbol $fShowSymbol $fOrdSymbol $fEqSymbol $fShowTerm $fReadTerm$fEqTerm $fOrdTermHasRefsgetRefsallRefs getRefIdsHasEnvironment environmentsetEnvironment deleteRef insertRef changeRef EnvironmentBindingmakeRef makeRefListRefmapRef makeBinding fromBinding showValue getTermValuemakeEnvironment singleBindingbindings noBindings?$fHasEnvironmentEnvironment$fHasRefsEnvironment$fMonoidEnvironment$fShowEnvironment$fHasIdBinding $fEqBinding $fShowBinding$fReference(,) $fReference[]$fReferenceShowString$fReferenceChar$fReferenceTerm$fReferenceInt$fHasTypeableRef $fHasIdRef$fEqRef $fShowRef$fEqEnvironmentdifferenceWithdifferenceEqualWith differencedifferenceEqual Substitution emptySubstsingletonSubst listToSubst@@ composable lookupVardom@+@$fArbitrarySubstitution$fShowSubstitution$fMonoidSubstitution$fEqSubstitution SymbolMatchMatchunify matchExtended matchListunificationTests RuleBuilder buildRuleSpec Different different RewriteRule ruleSpecTermRuleSpec:~>makeRewriteRuletermRewriteRule symbolMatcher symbolBuildershowRewriteRulemetaInRewriteRulerenumberRewriteRule$fApplyRewriteRule$fRuleBuilder(->)b$fRuleBuilderRuleSpeca$fDifferentTerm$fDifferentChar $fDifferent[]$fHasIdRewriteRule$fShowRewriteRule$fFunctorRuleSpec$fShowRuleSpecContextNavigatorContext fromContextfromContextWithfromContextWith2 newContext noNavigator navigator termNavigator contextView liftToContextapplyTopuseuseC currentTerm changeTermcurrentInContextchangeInContextreplaceInContext$fHasEnvironmentContext$fNavigatorContext $fShowContext $fEqContextConfigshowTerm complexity termEquality somewhereM isConfluentcheckConfluencecheckConfluenceWith defaultConfig MakeTrans makeTransTransTransformation transPure transMaybe transList transGuard transRewritereadRefreadRefDefault readRefMaybewriteRef writeRef_ writeRefMaybetransUseEnvironment transLiftViewtransLiftViewIntransLiftContexttransLiftContextIn transApplytransApplyWithgetRewriteRules$fHasRefsTrans $fMakeTrans[]$fMakeTransMaybe$fAlternativeTrans$fApplicativeTrans$fFunctorTrans $fMonoidTrans$fArrowChoiceTrans$fArrowPlusTrans$fArrowZeroTrans $fArrowTrans$fCategoryTYPETrans ParamTransinput inputWith transInput1 transInput2 transInput3transInputWithreadRef2readRef3output outputWith outputOnly outputOnly2 outputOnly3outputOnlyWith writeRef2 writeRef2_ writeRef3 writeRef3_ parameter1 parameter2 parameter3transRefsupplyParameters Recognizer Recognizable recognizer recognizeAll recognizerecognizeTransmakeRecognizermakeRecognizerTrans$fHasRefsRecognizer$fRecognizableRecognizer$fMonoidRecognizer$fLiftViewRecognizerRule ruleSiblingstransformationcheckReferencesmakeRule ruleMayberuleList ruleTrans ruleRewrite rewriteRule rewriteRules buggyRule minorRule emptyRuleidRule checkRule isRewriteRule siblingOfdoAfter addRecognizeraddRecognizerBooladdTransRecognizer $fHasRefsRule $fMinorRule $fBuggyRule$fRecognizableRule$fLiftViewRule $fHasIdRule $fApplyRule $fOrdRule$fEqRule $fShowRule LabelSymbol isEnterSymbol AtomicSymbol atomicOpen atomicClose enterRuleexitRule isEnterRule isExitRule$fLabelSymbolRule$fAtomicSymbolRule!*>filterPhideatomic interleave<%>permute<@>initsmanymany1 replicateoptiontryrepeatrepeat1 exhaustiveNaryfromNaryBinary fromBinaryUnary fromUnaryNullary fromNullaryAritylistifytoArityliftIsoDecl combinator CombinatorDynamic dynamicToTermdynamicFromTermLeafLeafRuleLeafDyn StrategyTree treeToProcessmapRulesInTree applyDecl makeDynamic dynamicTree associative $fArityNary $fArityBinary $fArityUnary$fArityNullary $fHasIdDecl$fEqDecl $fShowDecl$fLiftViewDynamic$fApplyDynamic$fHasIdDynamic$fLiftViewLeaf $fApplyLeaf $fMinorLeaf$fLabelSymbolLeaf$fAtomicSymbolLeaf $fHasIdLeaf$fEqLeaf $fShowLeafPathPrefix firstsOrderednoPrefix makePrefix replayProcess isEmptyPrefix majorPrefixsearchModePrefix prefixPaths emptyPathreadPath readPaths $fShowPath$fReadPathItem$fShowPathItem$fFirstsPrefix$fMonoidPrefix $fShowPrefix $fEqPathItem$fEqPathLabeledStrategy IsStrategy toStrategyStrategyliftSliftS2liftSnunlabel emptyPrefix replayPath replayPathsreplayStrategyderivationListrulesInStrategymapRules mapRulesScleanUpStrategycleanUpStrategyAftertoStrategyTreeonStrategyTreedecl0decl1decl2declNuseDecl$fLiftViewStrategy$fLiftViewLabeledStrategy$fHasIdLabeledStrategy$fApplyLabeledStrategy$fShowLabeledStrategy$fIsStrategyDynamic$fIsStrategyRewriteRule$fIsStrategyRule$fIsStrategyLabeledStrategy$fIsStrategyStrategy $fFixStrategy$fSequenceStrategy$fChoiceStrategy$fApplyStrategy$fShowStrategyDependencyGraph.%..@.!~>succeedfailnoInterleaving interleaveIdchecknotwhileuntildynamicdependencyGraph ConfigActionRemoveReinsertCollapseExpandHideReveal StrategyCfgbyName configure configureS isConfigIdremovecollapsemulti$fReadConfigAction$fShowConfigLocation$fMonoidStrategyCfg$fShowStrategyCfg$fShowConfigAction$fEqConfigAction<|>>|> alternatives checkLocationsubTaskLocationnextTaskLocationstrategyLocationsOptionlayertraversetopdownbottomup leftToRight rightToLeftfullspinestoponceleftmost rightmosttraversalFilter parentFilterfulltdfullbuoncetd oncetdPrefoncebu oncebuPref leftmostbu leftmosttd somewhere somewhereWhen innermost outermostruleUpruleDown ruleDownLastruleLeft ruleRight$fMonoidOption DifficultyVeryEasyEasyMedium Difficult VeryDifficultExamplesStable ProvisionalAlpha ExperimentalExercise NewExercise exerciseIdstatusparser prettyPrinter equivalence similaritysuitablestrategycanBeRestarted extraRules ruleOrdering navigationexamplesrandomExercise testGenerator hasTermView hasTypeable properties emptyExercise makeExerciseprettyPrinterContextisReady isSuitablerulesetgetRuleruleOrderingWithisPublic isPrivatereadDifficulty mapExamplesexamplesContext inContextwithoutContext useTypeable setProperty setPropertyF getProperty getPropertyFsimpleGenerator useGenerator randomTerm randomTermsshowDerivationshowDerivationsprintDerivationprintDerivationsdiffEnvironmentdefaultDerivationallDerivations$fHasTypeableExercise$fReadDifficulty$fShowDifficulty$fHasIdExercise$fApplyExercise $fOrdExercise $fEqExercise $fShowStatus$fEqDifficulty$fOrdDifficulty$fEnumDifficultyShowAsSshowSfromS checkExerciseexerciseTestSuiteshowAscheckParserPrettycheckParserPrettyExpropRule checkExamples checksForTermchecksForDerivation $fShowShowAsfailSnotSrepeatS replicateS sequenceSuntilS toOpenMath fromOpenMathtoOMOBJ fromOMOBJnoMixedFractionsEncodingEncHTML EncOpenMath EncString EncCompact EncPrettyEncJSON DataFormatSchemaV1V2 NoLoggingRequest serviceIdsourcefeedbackScript requestInfo cgiBinary logSchema randomSeed dataformat getSchema readSchema htmlOutput compactOutput useOpenMath useJSONTerm useLoggingdiscoverDataFormat readEncoding$fShowEncoding$fMonoidRequest $fShowSchema $fEqSchema$fShowDataFormat $fEqEncoding ruleToHTML ExampleMap rulesInfoXMLrewriteRuleToFMPcollectExamples Condition RecognizedIs MotivationIsCondNot CondConstCondRefText TextStringTextTermTextRef TextEmpty:<>:DeclType TextForId StringDeclFeedback NameSpaceSupportsSimpleGuardedScript scriptDecls makeScriptmakeText feedbackDecl textForIdDeclincludes textItems$fUniplateText$fUniplateCondition $fMonoidText$fMonoidScript $fShowText$fShowCondition$fShowDeclType $fShowScriptparseScriptSafe parseScriptStateexercise statePrefix stateContext stateUser stateSessionstateStartTerm microsteps stateTerm makeState makeNoStateemptyStateContext emptyState startStaterestart withoutPrefixfinished stateLabels $fFirstsState$fHasEnvironmentState $fHasIdState $fShowStateLogRefRecordservice exerciseidscript requestinfouserid sessionidtaskidtime responsetime ipaddressversionerrormsg serviceinforuleid addRequestaddStatenoLogRef newLogRef changeLogprintLog logEnabled logRecord $fShowRecord CmdLineOptionVersionHelpPrintLog InputFileTest MakeScriptFor AnalyzeScript versionTexthelpText fullVersion shortVersiongetCmdLineOptions$fEqCmdLineOptionShowFshowFConstServiceStratCfgQCGen SomeExerciseBoolIntTypeRepIso:->IOTagListPair:|:UnitType TypedValue:::EqualequalserviceDeprecatedserviceFunction makeService deprecateequalMtError tDerivationtIOtText.->tStatetMaybe tStrategyCfgtListtUnittPairtString tExercisetContexttBooltInttRule tLocationtTuple3tTuple4tTuple5 tEnvironmenttTerm tDifficultytUserIdtQCGen tExamplestIdtScript tSomeExercisetService tStrategytTreetTestSuiteResultfindValuesOfType $fShowFConst $fShowConst$fShowTypedValue$fShowTypedValue0 $fShowTypeRep$fShowFTypeRep $fEqualConst$fEqualTypeRep$fHasIdService $fShowServiceDomainReasonerDR reasonerId exercisesservicesviewsaliasesscripts testSuitetDomainReasonernewDomainReasonerexercisesSortedservicesSorted findExercise findService defaultScript$fHasIdDomainReasoner$fMonoidDomainReasonerOptionsrequestqcGenbaseUrlmaxTimecgiBin optionCgiBin optionHtml optionBaseUrl makeOptions$fMonoidOptions TypedDecoderDecoder TypedEncoderEncoder Converter fromExercise fromOptionsrun getExercise getBaseUrlgetQCGen getScript getRequest withExercise withOpenMath withJSONTerm// hasJSONView addJSONView jsonEncoding termToJSON jsonToTermhasLatexEncoding latexPrinterlatexPrinterContext latexEncodinglatexEncodingWith makeEncoder encoderForexerciseEncoder encodeTypedsplitsetInput makeDecoder decoderFor$fMonadPlusError $fMonadError$fAlternativeError$fApplicativeError$fFunctorError$fConverterDecoder$fMonadPlusDecoder$fMonadDecoder$fAlternativeDecoder$fApplicativeDecoder$fFunctorDecoder$fBuildXMLEncoder$fMonoidEncoder$fConverterEncoder$fMonadPlusEncoder$fMonadEncoder$fAlternativeEncoder$fApplicativeEncoder$fFunctorEncoder$fArrowEncoder$fCategoryTYPEEncoder JSONDecoder jsonDecoder XMLDecoder xmlDecoderReplyOk IncorrectAnswerproblemDecompositiontAnswertReply strategyToXMLStepInfogeneratecreatesolution tStepInfo allfirstsonefirstonefinalallapplicationsstepsremainingfindbuggyrules recognizeRuleexampleDerivations Diagnosis SyntaxError NotEquivalentSimilar WrongRuleExpectedDetourCorrectUnknowngetStategetStateAndReadydiagnose tDiagnosis$fShowDiagnosis Evaluator evalServicesubmittResult jsonEncoder processJSONEnvoldReadyexpected recognized motivationdiffPairbeforeafter afterTextnewEnvironment ruleToStringevalfeedbackDiagnosis feedbackHint feedbackHints feedbackIds attributeIds conditionIdsUnknownExerciseUnknownFeedbackFeedbackUndefined NoTextForRuleUnknownAttributeUnknownCondAttr makeScriptForparseAndAnalyzeScript analyzeScriptaccepttMessagederivationtext onefirsttext submittext feedbacktext XMLEncoder xmlEncoder encodeState LinkManager urlForCSS urlForImage urlForRequest urlForIndexurlForExercisesurlForServices urlForServiceurlForExerciseurlForStrategy urlForRulesurlForExamplesurlForDerivations urlForRuleurlForTestReporturlForRandomExample urlForState urlForFirstsurlForApplicationsurlForDerivationurlForMicrosteps linkToIndexlinkToExerciseslinkToServices linkToServicelinkToExerciselinkToStrategy linkToRuleslinkToExampleslinkToDerivations linkToRulelinkToTestReportlinkToRandomExample linkToState linkToFirstslinkToMicrostepslinkToApplicationslinkToDerivationmakeLinkManager stateToXML htmlEncoder processXML serviceListmetaServiceList defaultMaindefaultMainWith defaultCGIITeqITguardEqData.Typeable.InternalmkAppTyTypeableghc-prim GHC.TypesTyCon Data.Typeablegcast2gcast1gcasteqTcast rnfTypeRep showsTypeReptypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1typeOftypeRep typeRepArgs typeRepTyCon funResultTy splitTyConAppmkFunTy mkTyConApptypeRepFingerprintrnfTyConmkTyCon3tyConFingerprint tyConString tyConName tyConModule tyConPackage Typeable1 Typeable2 Typeable3 Typeable4 Typeable5 Typeable6 Typeable7Data.Type.Equality:~:Refl Data.ProxyProxy MaxRatingWarningErrorM messageStatus messageRatingsuitescasesdiffTime resultRatingWriteIOCaseSuiteTS makeTestSuiteassertMessageschangeMessagesrunnernewline newlineIndentdotreset suiteResult caseResult getDiffTime returnStrictMonoidmemptymappendmconcatDualgetDualEndoappEndoAllgetAllgetAnySumgetSumProduct getProductFirstgetFirstLastgetLastAltgetAlt HashTabletableRefencodeIndexZero extractHash extractIndex hashStringmaxHashatIndexcombineintErr frequencyAGpureGennewGen'QuickCheck-2.9.2-3a8nWdLsV8cEn9LdMoftRmTest.QuickCheck.AllverboseCheckAll quickCheckAllforAllProperties monomorphicpolyVerboseCheckpolyQuickCheckTest.QuickCheck.TestverboseCheckWithResultverboseCheckResultverboseCheckWith verboseCheckquickCheckWithResultquickCheckResultquickCheckWith quickCheckstdArgsArgsreplay maxSuccessmaxDiscardRatiomaxSizechattySuccessGaveUpFailureNoExpectedFailureInsufficientCoveragelabelsreason theExceptionnumTests numShrinksnumShrinkTriesnumShrinkFinalusedSeedusedSizeTest.QuickCheck.Property===disjoin.||.conjoin.&&..&. forAllShrinkforAllwithin==>coverclassifycollectagain expectFailureverbose whenFail'whenFail printTestCasecounterexample noShrinking shrinkingmapSize ioPropertyPropertyTestablepropertyDiscardTest.QuickCheck.ModifiersBlindgetBlindgetFixed OrderedListOrdered getOrdered NonEmptyListNonEmpty getNonEmptyPositive getPositiveNonZero getNonZero NonNegativegetNonNegativeLargegetLargeSmallgetSmallShrink2 getShrink2Smart Shrinking ShrinkState shrinkInit shrinkStateTest.QuickCheck.Arbitrary infiniteList orderedListvectorcoarbitraryEnumcoarbitraryShowcoarbitraryRealcoarbitraryIntegral><genericCoarbitraryshrinkRealFracshrinkIntegral shrinkNothingarbitrarySizedBoundedIntegralarbitraryBoundedEnumarbitraryBoundedRandomarbitraryBoundedIntegralarbitrarySizedFractionalarbitrarySizedNaturalarbitrarySizedIntegral shrinkListsubtermsrecursivelyShrink genericShrink Arbitrary arbitraryshrink CoArbitrary coarbitraryTest.QuickCheck.ExceptiondiscardTest.QuickCheck.GeninfiniteListOfvectorOflistOf1listOfgrowingElementsshuffle sublistOfelementsoneof suchThatMaybesuchThatsamplesample'choosescaleresizesizedvariantGen$parsec-3.1.11-37j7M1YEHqtEooY7BpJdriText.Parsec.Language mondrianDefmondrian haskellDefhaskellemptyDef javaStyle haskellStyle"Text.ParserCombinators.Parsec.ExprbuildExpressionParserOperatorInfixPostfix OperatorTable"Text.ParserCombinators.Parsec.Char CharParserText.Parsec.Token LanguageDefGenLanguageDef commentStart commentEnd commentLinenestedComments identStart identLetteropStartopLetter reservedNamesreservedOpNames caseSensitiveText.Parsec.CharsatisfyanyCharcharoctDigithexDigitdigitletteralphaNumloweruppertabnoneOfoneOfText.Parsec.ExprAssoc AssocNone AssocLeft AssocRightText.Parsec.CombinatormanyTill notFollowedByeofanyTokenchainr1chainl1chainlchainrcountendByendBy1sepEndBy sepEndBy1sepBy1sepBy skipMany1betweenoptional optionMaybe"Text.ParserCombinators.Parsec.Prim runParserpzeroText.Parsec.String parseFromFileParser GenParserText.Parsec.Prim updateStatesetStatesetParserStategetParserState setPositiongetInput getPosition parseTestparseskipMany tokenPrimEx tokenPrimtoken lookAheadtokens unexpected stateInputstatePosText.Parsec.ErrorerrorPos ParseErrorText.Parsec.PossetSourceColumn setSourceLine setSourceNameincSourceColumn incSourceLine sourceColumn sourceLine sourceName SourceNameLineColumn SourcePosdoBlackBoxTestelemExtsforcepreparediffssimplerDirectorystripDirectoryPartopenTag openCloseTagcloseTag prettyTagprettyAttValuetoUTF8fromUTF8isHighvalidinMapfintpairs letterMapmerge baseCharMapideographicMapcombiningCharMapdigitMap extenderMapdecode16 decode16XXMLDecl combiningCharextender singleQuoted doubleQuotedmspacenameChar spacedNamenmtoken entityValueattValue systemLiteral pubidLiteral pubidCharcharDatacommentpInstrpiTargetcdSectprologxmlDecleq versionNummiscmiscs doctypedecldeclSep intSubset markupdecl extSubsetDeclsdDeclsTag attributeeTag elementdecl contentspeccpcpChoicecpSeqmixed attlistDeclattDefattType stringType tokenizedTypeenumeratedType notationType enumeration defaultDeclconditionalSect includeSect ignoreSectignoreSectContentsignorecharRefhexa reference entityRef peReference entityDeclgeDeclpeDecl entityDefpeDef externalID nDataDecltextDecl encodingDeclencName notationDeclpublicIDBS ignoreLayoutfromBS escapeAttrescapetrim readDoublearbOMOBJL showLatex RPCRequest requestMethod requestParams requestId prettyJSON okResponse errorResponsearbJSON myStringGentitle styleSheets htmlContent fromMirrorLIU StrIteratorSIposSIfromSI StrNavigatorSN currentStr strContext fromLeafsHorfromHorLevel fromLevelPostfromPostPrefromPresizeStrNavigatorcountStrfirstStrIteratorlastStrIteratorfinalSIokdownWithT locationList_go==!==>>prop changeLastFunctorMonadDone:/::|> bestsWith errBiArrow annotationscommit mergeStepsDT.idList idDescriptionidRefappendIdstringIdisIdCharemptyIddividesplitsAlgNodeLabelRecVararbTree shrinkTreesparidAlgPEPpidPrim:@:>>>::***::+++:TraverseunMswapcopyPViewCompl:&&::||:symbolIdenvMap identifierprinterrefViewrefType changeEnv collectSymdiffdiffTermunSmatchA defaultMatch safeZipWithproductsassociativeMatchRruleIdruleShow ruleTermView ruleMatchers ruleBuilders buildFunctionfill buildSpecapplyRewriteRuletoTermRR fromTermRRTermNavNoNavCgetEnvironment getNavigatorliftCN navLocationcurrentNavigatorchangeNavigatorcurrentTchangeTcastTTriple normalForm rewriteTerm uniplateNav superImpose criticalPairsnoDiamondPairsnoDiamondPairsWith reportPairsZeroRewriteUseEnv:>>::**::++:AppendReadRefM WriteRefM descendTransfrom3to3uncurry3unR isBuggyRule isMinorRulegetTrans getRecognizerinitIddeclIdDyn dynamicIdPathItemIndexInputgetPaths remainderreorderstopped filterPrefixLS getProcessConfigLocationByNameCfg actionGroupsconfigureStrategyTree insertAtLabel removeAtLabelnextId repeatDecl configIds removeDecl collapseDeclhideDeclfromLoctoLocOunOInfogetVisitgetOp getFilters getTopDown getReversedOpOrElsePreferVisit VisitFirstVisitOne VisitSomeVisitAll VisitManyvisit layerWith traverseWithsetVisitsetOp Data.EitherLeftRightIdentity fromIdentityDynFinsertPropertylookupPropertycastFshowThisDerivation idToSymbol hasTermViewMmfSymbolrewriteRuleToHTML showLeadsTo specialSymbol sameSymbolshowMetaparseOneScriptFiledeclsdecl simpleDecl guardedDecldeclType conditionsingleLineText multiLineTexttextItem identifiers filenamesfilenamelexChar lexStringlexeme newSessionId firstsWithmrefTimeDiffrecord makeRecord getRecordheaderoptionsfileArgtestArg makeScrArg analyzeScrArg showAsList showTuplerunErrorDecrunDecEncrunEncFunF jsonProperty nullSymbol objectSymbol latexPropertygetFgetput runErrorM ApplicativepureControl.Applicative WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListleftApp^<<<<^>>^^>>returnAKleisli runKleisli ArrowApplyapp ArrowMonad ArrowLooploopData.Functor.ConstgetConstliftA3liftA2liftA Alternativesome decodeType decodeConst decodeRuledecodeIddecodeLocation decodeStateenvToLoclocRef decodePathsdecodeEnvironment decodeContextdecodeExpression decodeOMOBJdecodeConfigurationdecodeArgEnvironment decodeBinding decodeChildrunPrefixLocation fromAnswerfirstMajorInStepsnextMajorForPrefixnameAttrstrategyTreeToXMLstrategyTreeBuilder addProperty setLocationsiblingInCommon EvalResult inputValues outputValue evalResultvalueslogType fromDiagnose JSONEncoderjsonEncodeConstencodeEnvironment encodeContextencodeStateEnvironmentencodeDerivationencodeDerivationText encodeResultencodeDiagnosis jsonTuple ruleShortInfo exerciseInfoextractExerciseId addVersion jsonRequest defaultSeed stringOption stringOptionM myHandler jsonEvaluatornewEnvironmentFortoText defaultHintmake expectedId recognizedId diffbeforeId diffafterIdbeforeIdafterId afterTextId motivationId oldreadyId hasexpectedIdhasrecognizedIdhasmotivationIdrecognizedbuggyIdxmlEncoderConstbuildExpressionencodeLocationencodeTypedBindingencodeDifficulty encodeText encodeMessageencodeDecompositionReply encodeAsListshowBool simpleRequest makeRequestexerciseRequestexerciseRequestWith stateRequestlinkWith escapeInURL HTMLEncodermakePage encodeType encodeConst encodeIndexencodeServiceListencodeExerciseList groupById groupsWithorderedGroupsWith encodeServiceinputOutputTypes productTypeencodeExerciseexerciseHeader exerciseMenuencodeStrategybool statusImg statusSrc showRatingencodeRuleList encodeRuleencodeExampleListexternalencodeDerivationListhtmlDerivation htmlState htmlContext stateLink useAllFirstsuseAllFirstsIO encodePrefixhtmlStephtmlDerivationWith htmlFirstshtmlAllApplications htmlDiagnosishtmlDescription submitFormsubmitStateInfosubmitDiagnose submitRequestquote submitURL xmlRequestxmlReplyresultOk resultError xmlEvaluator htmlEvaluator solutionS derivationS allfirstsS onefirstS onefinalS equivalenceS similarityS suitableS finishedSreadySstepsremainingS applicableSallapplicationsSapplyS generateScreateS examplesSexampleSfindbuggyrulesSsubmitS diagnoseSdiagnoseStringSdiagnoseStringproblemdecompositionS onefirsttextSderivationtextS submittextS feedbacktextSindexS exerciselistS servicelistS serviceinfoS rulelistS ruleinfoS rulesinfoS strategyinfoS exerciseinfoS stateinfoS microstepsSexamplederivationsS testreportSlogSinputOrDefaultdefaultCommandLineprocessmakeTestRunner