u*X      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW Safe-Inferred* Represents X of Y.ZRepresents the end of a list.Predicates. Is an instance of [-, which allows you to change the type using \x. Though the constructor is exported, ordinarily you shouldn't need to use it; other functions in this module create  and manipulate them as needed.The result of processing a .A  that returned ]A  created with A  created with A  created with  A  created with  A  that returned ^ A  created with  A  created with  A  created with A  created with 0Any type that is accompanied by a set of labels.0Gives additional information about a particular * to aid the user when viewing the output.4Stores the representation of a value; created using _ ` a.,Describes the condition; for example, for a  b, this might be is greater than 5; for a  c, this might be begins with "Hello".Returns whether this  failed or passed.Creates a new . In predicate cond f, cond! describes the condition, while f1 gives the predicate function. For example, if f is (> 5), then cond might be "is greater than 5".And. Returns ^ if both argument  return ^A. Is lazy in its second argment; if the first argument returns ], the second is ignored. Or. Returns ^ if either argument  returns ^B. Is lazy in its second argument; if the first argument returns ^", the second argument is ignored.Negation. Returns ^ if the argument  returns ].Uses the appropriate  depending on the d value. In $ ( l r) e, the resulting  returns the result of l if e is e or the result of r if e is f!. Is lazy, so the the argument  that is not used is ignored.g Did this  pass or fail?Always returns ^Always returns ]Always returns its argument Adds descriptive text to a J. Gives useful information for the user. The label is added to the top  in the tree; any existing labels are also retained. Labels that were added last will be printed first. For an example of this, see the source code for ! and " or the source code for Prednote.Comparisons.!Like h; is ^ if any of the list items are ^. An empty list returns ]5. Is lazy; will stop processing if it encounters a ^ item."Like i; is ^ if none of the list items is ]. An empty list returns ^4. Is lazy; will stop processing if it encouters a ] item.# Create a  for Y.$Runs a  against a value.%Runs a 5 against a particular value; also returns a list of j$ describing the steps of evaulation.&Like %[, but results are printed to standard output. Primarily for use in debugging or in a REPL.kA colorful label for ^ values.lA colorful label for ] values.mAppend two lists of j9, with an intervening space if both lists are not empty.nAppend two lists of j6, with an intervening hyphen if both lists have text.'Obtain a list of j# describing the evaluation process.(Obtain a list of j# describing the evaluation process.)Obtain a list of j# describing the evaluation process.AoZp g !"#What to do on . Usually you wil use  or . Analyzes q values.rst$%&klmnuvwxyz{'(Number of levels of indentation)Number of levels of indentation|}~*  !"#$%&'()*!"# $%&   '()1oZp   g !"#rst$%&klmnuvwxyz{'()|}~ Safe-Inferred43Parses an RPN expression and returns the resulting . 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. *+,-./01234 *+,-./01234 .0/*-,+1234*-,+.0/1234 Safe-InferredValues 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.;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.56789:;YThe 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.56789:;8:9576; 5768:9; Safe-Inferred <#Is this an infix or RPN expression?@3A single type for both RPN tokens and infix tokens.ACreates Operands from Predbox.BThe And operatorCThe Or operatorDThe Not operatorEOpen parenthesesFClose parenthesesGParses 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.<=>?@ABCDEFG <=>?@ABCDEFG <>=?@ABCDEFG <>=?@ABCDEFG Safe-InferredHgBuild a Pred that compares items. The idea is that the item on the right hand side is baked into the  and that the C compares this single right-hand side to each left-hand side item.IOverloaded version of H.J Builds a  that tests items for equality.KOverloaded version of J.L Builds a 2 for items that might fail to return a comparison.W,Parses a string that contains text, such as >=@, which indicates which comparer to use. Returns the comparer. Append two $, with an intervening space if both  are not empty.H"Description of the right-hand sideHow 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.IRight-hand sideWhen 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.J"Description of the right-hand side=How to compare an item against the right hand side. Return ^ if the items are equal; ] otherwise.KRight-hand sideL"Description of the right-hand sideHow 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.MRight-hand sideNRight-hand sideORight-hand sidePRight-hand sideQRight-hand sideRDescription of right-hand sideHow 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.SDescription of right-hand sideHow 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.TDescription of right-hand sideHow 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.UDescription of right-hand sideHow 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.VDescription of right-hand side=How to compare an item against the right hand side. Return ^ if equal; ] otherwise.W)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 I, H, or L.AIf an invalid comparer string is given, Nothing; otherwise, the .HIJKLMNOPQRSTUVWHIJKLMNOPQRSTUVWHIJKLMNOPQRSTUVW Safe-InferredF  !"#$%&'()<=>?@ABCDEFGHIJKLMNOPQRSTUVW       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZYZ[\]^_]^`abcabdefgYhiYjkablYhmYnoYnpYnqrYs"Ys#tuvwxyz{\YZ|}~Ayeprednote-0.28.0.0 Prednote.CorePrednote.Expressions.RPNPrednote.Expressions.InfixPrednote.ExpressionsPrednote.ComparisonsPrednoteNothingPredResultFailedFNotFOrFAnd FTerminalPassedPNotPOrPAnd PTerminalLabeledLabelValue Condition splitResult predicate&&&|||notswitchtruefalsesameaddLabelanyallmaybetest verboseTestverboseTestStdoutresultToChunkspassedToChunksfailedToChunksOperatorOpNotOpOrOpAndRPNToken TokOperator TokOperand pushOperand pushOperator pushTokenparseRPNParenCloseOpen InfixTokenTokParenTokRPN createRPNExprDescRPNInfixErrorTokenoperandopAndopOropNot openParen closeParenparseExpression compareBycompareequalByequalcompareByMaybegreaterless greaterEqlessEqnotEq greaterBylessBy greaterEqBylessEqBynotEqBy parseComparerbase Data.MaybeMaybe EndOfListcontravariant-1.2.0.1Data.Functor.Contravariant Contravariant contramapghc-prim GHC.TypesFalseTrue text-1.2.0.4 Data.TextpackGHC.Base.GHC.ShowshowIntString Data.EitherEitherLeftRight resultToBoolGHC.Listrainbow-0.20.0.4 Rainbow.TypesChunklblTruelblFalse<+><-> CoreNothingJust explainAnd explainOr explainNothyphen chunksNull indentAmtspacesnewline labelToChunksexplainTerminal $fShowNothing$fShowEndOfList$fContravariantPred $fShowPred$fFunctorLabeled OpStackValprocessRPNTokenpopperpopThroughOpen processParenpopRemainingOperators StkOpenParenStkOpprocessInfixTokenunToken toksToRPNData.Text.InternalText