úÎÎtÇwp      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno Safe-Inferred!Is this result visible? If not,   will not show it.The result of evaluating a  .Results that are not  are not shown by the  function.BIndicates whether there was a short circuit when evaluating this  #. A short circuit occurs when the  Q does not need to evaluate all of its children in order to reach a result. If p4, there was no short circuit; otherwise, this is a q with a  / providing a way to display the short circuit.&The dynamic label; this indicates how  will show the  ) to the user after it has been evaluated. A rose tree of predicates. 5A tree of static names, allowing you to identify the  # without applying it to a subject.  Evaluates a   by applying it to a subject. @Indicates how to display text. This function is applied to an rL that is the level of indentation; each level of descent through a tree of   increments this r2 by one. Because the function returns a list of sq, you can use multiple colors. Typically this function will indent text accordingly, with a newline at the end. Shown by   Hidden by  No   in the list may be t for u to be v. An empty list of   yields a   that always returns v. May short circuit. At least one   in the list must be v for the resulting   to be v. An empty list of   yields a   that always returns t. May short circuit.Negates the child  . Never short circuits.Fanout. May short circuit.Fanout all. The resulting   is v if no child item returns t'; an empty list of child items returns v. May short circuit.Fanout any. The resulting   is v% if at least one child item returns v'; an empty list of child items returns t. May short circuit. Fanout at least. The resulting   is v5 if at least the given number of child items return v. May short circuit.'Indents and formats output for display.:Indents and formats static labels for display. This is a  for how the   would be applied. Applies a  % to a single subject and returns the .Like # but also returns the accompanying .Like w.Like  but also returns a list of  , with one  for each list item. shorter x yq is True if list x is shorter than list y. Lazier than taking the length of each list and comparing the results.! *This function is applied to a list of the  from evaluating the child  D on each fanout item. The function must return a triple, with the x! indicating success or failure,  for visibility, and y r= to indicate whether a short circuit occurred; this must be p$ if there was no short circuit, or q with an r( to indicate a short circuit, with the rX indicating that a short circuit occurred after examining the given number of elements.The resulting  ; always short circuits if the previous function returns a q r with the r2 being less than zero. Otherwise, the resulting   short circuits if the rF is less than the number of elements returned by the fanout function.Fanout functionFanout functionFanout functionIFind at least this many. If this number is less than or equal to zero,  will always return v.Fanout function#Start at this level of indentation.#Start at this level of indentation.  !     Safe-Inferred !A colorful label for v values."A colorful label for t values.#Indent amount.$Prefixes the given z with colorful text to indicate v or t as appropriate.%Indents the given list of s by the given r multipled by #. Appends a newline.&A label for a short circuit.' Indents a z by the given r multiplied by #.( Append two z$, with an intervening space if both z are not empty.) Create a new   with a different static label.*Creates a new  , with a result differing from the original  .+Creates a new   with a different dynamic label.,Creates a new  2 with any short circuits having a colorful label. !"#$%&'()*Function to modify the  Modify the  of this  +;New dynamic label. Do not indicate whether the result is v or t; this is done for you., !"#$%&'()*+, !"#$%&'()*+, !"#$%&'()*+, Safe-Inferred-Builds predicates..Always returns v and is always visible./Always returns t and is always visible.0-Returns the subject as is; is always visible.1Makes an existing   the child of a new   . The new Pred has the same  as the child   . The new  , is always visible and never short circuits.2 Creates a   with its visibility modified.3 Creates a   that is always shown.4 Creates a   that is always hidden.5 Creates a   that is shown only if its  is v.6 Creates a   that is shown only if its  is t.7 No child Pred may be t. An empty list of child Pred returns v. Always visible.8Creates 7 Pred that are always visible.9At least one child Pred must be v. An empty list of child Pred returns t. Always visible.:Creates 9 Pred that are always visible.;Negation. Always visible.<No fanned-out item may be t). An empty list of child items returns v.=%At least one fanned-out item must be v). An empty list of child items returns t.>1At least the given number of child items must be v.- Static labelDComputes the dynamic label. Do not indicate whether the result is v or t%; this is automatically done for you.Predicate function./01 Static labelDComputes the dynamic label. Do not indicate whether the result is v or t%; this is automatically done for you.2When applied to the  of the  0, this function returns the desired visibility.3456789:;<=>-./0123456789:;<=>-./0123456789:;<=>-./0123456789:;<=>8: Safe-Inferred?gBuild a Pred that compares items. The idea is that the item on the right hand side is baked into the Pred and that the PredC compares this single right-hand side to each left-hand side item.@Overloaded version of ?.A Builds a Pred that tests items for equality.BOverloaded version of A.C Builds a Pred2 for items that might fail to return a comparison.N,Parses a string that contains text, such as >=@, which indicates which comparer to use. Returns the comparer.?6Description of the type of thing that is being matched"Description of the right-hand sideDescribes the left-hand side¦How to compare the left-hand side to the right-hand side. Return LT if the item is less than the right hand side; GT if greater; EQ if equal to the right hand side.¥When subjects are compared, this ordering must be the result in order for the Predbox to be True; otherwise it is False. The subject will be on the left hand side.@6Description of the type of thing that is being matchedRight-hand side¥When subjects are compared, this ordering must be the result in order for the Predbox to be True; otherwise it is False. The subject will be on the left hand side.A6Description of the type of thing that is being matched"Description of the right-hand sideDescribes the left-hand side=How to compare an item against the right hand side. Return v if the items are equal; t otherwise.B6Description of the type of thing that is being matchedRight-hand sideC6Description of the type of thing that is being matched"Description of the right-hand sideDescribes the left-hand side How to compare an item against the right hand side. Return LT if the item is less than the right hand side; GT if greater; EQ if equal to the right hand side.¥When subjects are compared, this ordering must be the result in order for the Predbox to be True; otherwise it is False. The subject will be on the left hand side.D.Description of the type of thing being matchedRight-hand sideE.Description of the type of thing being matchedRight-hand sideF.Description of the type of thing being matchedRight-hand sideG.Description of the type of thing being matchedRight-hand sideH.Description of the type of thing being matchedRight-hand sideI.Description of the type of thing being matchedDescription of right-hand sideDescribes the left-hand side How to compare an item against the right hand side. Return LT if the item is less than the right hand side; GT if greater; EQ if equal to the right hand side.J.Description of the type of thing being matchedDescription of right-hand sideDescribes the left-hand side How to compare an item against the right hand side. Return LT if the item is less than the right hand side; GT if greater; EQ if equal to the right hand side.K.Description of the type of thing being matchedDescription of right-hand sideDescribes the left-hand side How to compare an item against the right hand side. Return LT if the item is less than the right hand side; GT if greater; EQ if equal to the right hand side.L.Description of the type of thing being matchedDescription of right-hand sideDescribes the left-hand side How to compare an item against the right hand side. Return LT if the item is less than the right hand side; GT if greater; EQ if equal to the right hand side.M.Description of the type of thing being matchedDescription of right-hand sideDescribes the left-hand side=How to compare an item against the right hand side. Return v if equal; t otherwise.N)The string with the comparer to be parsed3A function that, when given an ordering, returns a  9. Typically you will get this by partial application of @, ?, or C.AIf an invalid comparer string is given, Nothing; otherwise, the  .?@ABCDEFGHIJKLMN?@ABCDEFGHIJKLMN?@ABCDEFGHIJKLMN Safe-InferredYäParses an RPN expression and returns the resulting Predbox. Fails if there are no operands left on the stack or if there are multiple operands left on the stack; the stack must contain exactly one operand in order to succeed. OPQRSTUVWXYZ OPQRSTUVWXY SUTZORQPVWXYORQPSUTVWXYZ Safe-Inferred{Values on the operator stack.|*If the token is a binary operator A, then:§If A is left associative, while there is an operator B of higher or equal precedence than A at the top of the stack, pop B off the stack and append it to the output.ŸIf A is right associative, while there is an operator B of higher precedence than A at the top of the stack, pop B off the stack and append it to the output.Push A onto the stack.:If a token is an operand, append it to the postfix output."And has higher precedence than Or.}“Pops operators from the operator stack and places then in the output queue, as long as there is an And operator on the top of the operator stack.~ÿ Pops operators off the operator stack and onto the output stack as long as the top of the operator stack is not an open parenthesis. When an open parenthesis is encountered, pop that too, but not onto the output stack. Fails if the stack has no open parentheses.´Places an open parenthesis on the top of the operator stack. For Close parenthesis, pops operators off the operator stack through the next open parenthesis on the operator stack.aµCreates an RPN expression from an infix one. Fails only if there are mismatched parentheses. It is possible to create a nonsensical RPN expression; the RPN parser must catch this.€‡Pops remaining items off operator stack. Fails if there is an open paren left on the stack, as this indicates mismatched parenthesis.{‚[\]^_`ƒ|}~aYThe input tokens, with the beginning of the expression on the left side of the sequence.bThe output sequence of tokens, with the beginning of the expression on the left side of the list.€„[\]^_`a^`_[]\a {‚[]\^`_ƒ|}~a€„ Safe-Inferred b#Is this an infix or RPN expression?f3A single type for both RPN tokens and infix tokens.gCreates Operands from Predbox.hThe And operatoriThe Or operatorjThe Not operatorkOpen parentheseslClose parenthesesmíParses expressions. Fails if the expression is nonsensical in some way (for example, unbalanced parentheses, parentheses in an RPN expression, or multiple stack values remaining.) Works by first changing infix expressions to RPN ones.bcdef…†ghijkl‡mˆ bcdefghijklm bdcefghijklm bdcef…†ghijkl‡mˆ Safe-Inferredn:Indents and formats static labels for display. This is a n for how the   would be applied.o'Indents and formats output for display.no -./0123456789:;<=>no 23456-./0789:;1<=>n ono‰        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm nopnoqrstuvwrsxnyrszny!rs{no|}~€‚ƒ„…†‡ˆ‰fŠ‹Œprednote-0.26.0.4 Prednote.CorePrednote.FormatPrednote.PrebuiltPrednote.ComparisonsPrednote.Expressions.RPNPrednote.Expressions.InfixPrednote.ExpressionsPrednotereportVisible unVisibleOutputresultvisibleshortdynamicPredstaticevaluateChunkershownhiddenallanynotfanfanAllfanAny fanAtLeastplantesttestVfilterfilterVshorter $fShowPred $fShowOutput$fContravariantPredlblTruelblFalse indentAmtlblLineindentshortCir indentTxt<+>rename changeOutputspeak speakShort predicatetruefalsesamewrap visibilityrevealhideshowTrue showFalse&&&||| compareBycompareequalByequalcompareByMaybegreaterless greaterEqlessEqnotEq greaterBylessBy greaterEqBylessEqBynotEqBy parseComparerOperatorOpNotOpOrOpAndRPNToken TokOperator TokOperand pushOperand pushOperator pushTokenparseRPN$fContravariantRPNTokenParenCloseOpen InfixTokenTokParenTokRPN createRPNExprDescRPNInfixErrorTokenoperandopAndopOropNot openParen closeParenparseExpressionbase Data.MaybeNothingJustghc-prim GHC.TypesIntrainbow-0.20.0.4 Rainbow.TypesChunkFalseGHC.ListTrueBoolMaybe text-1.2.0.3Data.Text.InternalText OpStackValprocessRPNTokenpopperpopThroughOpen processParenpopRemainingOperators StkOpenParenStkOpprocessInfixToken$fContravariantInfixTokenunToken toksToRPN$fContravariantToken