Îõ³h&¨£-      !"#$%&'()*+, Safe-Inferred"1<ÁÂÃÄÅÊÌ×ÙÚÜãï=sayable½This is the default annotation type for the Saying module. The Prettyprinter reannotate operation can be used to change this annotation into any other annotation type the client desires.ëThe SayableAnn is an instance of IsLabel, so if OverloadedLabels is enabled, this can easily be specified: èimport qualified Prettyprinter as PP import Text.Sayable putStrLn $ sez @"info" $ PP.annotate #myann $ Hello &- "world!"  functions and is usually not directly needed by client code.sayable÷The result of applying the sayable method of the Sayable class is the Saying object. This object is internal to the Say module and is mostly used for subsequently combining with additional Saying objects to produce the final Saying object that is converted to a SayMessage for actual logging. A Sayable supports a Semigroup combinator to allow composition of messages.sayable/The main class of things that can be passed to say. Arguments provided to   or Š will be converted to the sayable form by automatically applying the appropriate instance of this class. The default implementation is: 'sayable = Saying . Prettyprinter.pretty sayableÎA helper operator allowing two Sayable items to be composed into a Saying. This is the most common operator used to construct composite Sayable messages. The two Sayable items are separated by a space. sayableÔA helper operator allowing two Sayable items to be composed into a Saying by placing the two Sayable items immediately adjacent with no intervening spaces. This is the high-density version of the more common   operator. sayableºA helper operator allowing a Sayable item to be composed with a Pretty item into a Saying. This is infrequently used and primarily allows the composition of a data object which has a  Prettyprinter instance but no  instance. sayableA helper operator to apply a  Prettyprinter (Doc ann -> Doc annä) function (the first argument) to the Sayable in the second argument. This is different from the  # operator in that the former uses  to join two independent  ? values, whereas this operator applies a transformation (e.g. Prettyprinter.annotate AnnValue or )Prettyprinter.align . Prettyprinter.group ) to the  in the second  argument.sayableàA helper operator allowing a Sayable item to be composed with a Foldable series of Sayable items. This can be used when the second argument is a List, Sequence, Set, etc. to add all elements of the set (comma-separated).éNote: this instance makes it easy to output lists, Sequence, NonEmpty.List, etc., but it can have undesireable effects for data tructures whose Foldable (Functor) is irregular... for example, folding over a tuple only returns the -â value of a tuple. Consider wrapping tuples in a newtype with an explicit Sayable to avoid this.sayableèA helper operator that generates a sayable from a list of sayable items, separated by the first sayablesayable×A helper operator that applies the first argument which converts an array of 'Prettyprinter.Doc ann' elements to a single 'PrettyPrinter.Doc ann' element to the second argument, which is a Foldable collection of 3 items. This is essentially a combination of the   and  operators.sayable×A helper operator that applies the first argument which converts an array of 'Prettyprinter.Doc ann' elements to a single 'PrettyPrinter.Doc ann' element to the second argument, which is a Foldable collection of 3 items. This is essentially a combination of the   and  operators.ÉUnlike the other operators defined in this package, this is a trinary operator rather than a binary operator. Because function application (whitespace) is the highest precedence, the last argument will typically need a preceeding $ to prevent applying the second argument to the third argument before applying this operator. òimport qualified Prettyprinter as PP putStrLn $ sez @"info" $ PP.fillSep &!+* t'" and " $ ["one", "two", "three"]one and two and threesayable>A helper operator allowing a Sayable item to be wrapped in a .. This adds the  of the first argument to the  of the second argument in the / case, or just emits the 2 of the first argument if the second argument is 0.sayableA helper function to use when OverloadedStrings: is active to identify the following quoted literal as a  Data.Text object.sayableÙA helper function to use when creating a PP.Doc SayableAnn data object (i.e. fixing the ann of 'Doc ann' to )sayableáThis is a convenience function that can be used for simple conversions of a Sayable to a String.sayableÝA Saying can be converted back into a PP.Pretty instance representation. Just saying... :-)ÐThis can be convenient to apply Prettyprinter formatting elements. For example: žinstance Sayable saytag Foo where sayable foo = sayable @saytag $ PP.group $ PP.pretty $ field1 foo &- sayable @saytag PP.line &- field2 fooThis uses Prettyprinter's group and line¡ formatters to show the two fields on the same line if they will fit, otherwise stacked on top of each other. Note that the second portion needs an explicit TypeApplication (applied here to the 1) because the 2 and 3( functions do not propagate that outer saytag to the inner portion.,sayableInputs that are (, i.e. that can be converted to a Saying     1 1 1 2122214      !"#$%&'()*+,-./01/23/24/2567867967:;%sayable-1.0.2.0-vgk0mTEsTu68LONa1RZps Text.Sayable PrettyprinterhsepDoc SayableAnn SayMessagesayMsgSayingsayingSayablesayable&-&+&%&!&*&+*&!*&!+*&?t'd'sez$fIsLabelannSayableAnn$fPrettySaying$fSemigroupSaying$fSayabletagDoc$fSayabletagDoc0$fSayabletagSomeException$fSayabletagByteString$fSayabletagByteString0$fSayabletagText$fSayabletagNatural$fSayabletagWord64$fSayabletagWord32$fSayabletagWord16$fSayabletagWord8$fSayabletagInt64$fSayabletagInt32$fSayabletagInteger$fSayabletagInt$fSayabletagBool$fSayabletagChar$fSayabletag[]$fSayabletagText0$fSayabletagASayingbase Data.Tuplesnd GHC.MaybeMaybeJustNothing*prettyprinter-1.7.1-Fnq1Vt2JMTY81kvR0W9kdPPrettyprinter.Internallinegrouppretty