úÎ!l`Ê      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉSafe ŒÊËÌÍÎÏÐÑNone24567&"rainbow*Text formatting such as bold, italic, etc. rainbow@A simple enumeration for eight values. Represents eight colors.rainbow A color; a ÒJ value means that the terminal's default color is used. The type of the Ó generally will be an  $ to represent one of 8 colors, or a Ô! to represent one of 256 colors.&rainbow#Takes the last non-Nothing Color. Õ is no color.9rainbow-The foreground and background color, and the a. This represents all colors and formatting attributes for either an 8- or 256-color terminal.FrainbowKFor each field, the resulting field is True if either field is True. For Õ, every field is False.Orainbow Holds the 9% for both 8- and 256-color terminals.VrainbowUses the underlying Ö instances for  and .\rainbowÿA chunk is some textual data coupled with a description of what color the text is, attributes like whether it is bold or underlined, etc. The chunk knows what foreground and background colors and what attributes to use for both an 8 color terminal and a 256 color terminal.brainbow Creates a \, with no formatting and with the given text.erainbowUses the underlying Ö instances for the O and for the particular _ . Therefore Õ will have no formatting and no colors and will generally have no text, though whether or not there is any text depends on the Õ for the type of the _.frainbow Creates a \, with no formatting and with the given text.lrainbowXStores colors that may affect 8-color terminals, 256-color terminals, both, or neither.rrainbowUses the underlying Ö instance for the s. Thus the last non-Ò y is used. This can be useful to specify one color for 8-color terminals and a different color for 256-color terminals.I    !"#$%9:=<;>?@ABCDEOPRQSTU\]_^`ablmonpqxyI   !"#$% EDCBA@?>9:=<;UTSOPRQa`\]_^bqplmonyxNone=?NÒ§rainbow*Spawns a subprocess to read the output of  tput colorsG. If this says there are at least 256 colors are available, returns ¦A. Otherwise, if there are at least 8 colors available, returns ¥. Otherwise, returns ¤.HIf any IO exceptions arise during this process, they are discarded and ¤ is returned.¨rainbowLike § but also consults a provided × . If the × is not a terminal, ¤( is returned. Otherwise, the value of § is returned.©rainbowConvert a list of \ to a list of ØU. The length of the returned list may be longer than the length of the input list.QSo, for example, to print a bunch of chunks to standard output using 256 colors: ÿkmodule PrintMyChunks where import qualified Data.ByteString as BS import Rainbow myChunks :: [Chunk String] myChunks = [ chunk "Roses" & fore red, chunk "\n", chunk "Violets" & fore blue, chunk "\n" ] myPrintedChunks :: IO () myPrintedChunks = mapM_ BS.putStr . chunksToByteStrings toByteStringsColors256 $ myChunks@To use the highest number of colors that this terminal supports: žmyPrintedChunks' :: IO () myPrintedChunks' = do printer <- byteStringMakerFromEnvironment mapM_ BS.putStr . chunksToByteStrings printer $ myChunksªrainbow%Writes a list of chunks to the given ×. First uses §? to determine how many colors to use. Then creates a list of Ø using ©# and then writes them to the given ×.«rainbow+Writes a list of chunks to standard output. First uses §? to determine how many colors to use. Then creates a list of Ø using ©) and then writes them to standard output.¬rainbow Writes a \D to standard output. Spawns a child process to read the output of  tput colors‘ to determine how many colors to use, for every single chunk. Therefore, this is not going to win any speed awards. You are better off using © and the functions in Data.ByteString to print your \%s if you are printing a lot of them.­rainbow Writes a \Z to standard output, and appends a newline. Spawns a child process to read the output of  tput colors‘ to determine how many colors to use, for every single chunk. Therefore, this is not going to win any speed awards. You are better off using © and the functions in Data.ByteString to print your \%s if you are printing a lot of them.©rainbowFunction that converts \ to Ø%. This function, when applied to a \, returns a difference list.4z{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­4z{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­None 24567SX^Ñ®rainbowÿƒBold. What actually happens when you use Bold is going to depend on your terminal. For example, xterm allows you actually use a bold font for bold, if you have one. Otherwise, it might simulate bold by using overstriking. Another possibility is that your terminal might use a different color to indicate bold. For more details (at least for xterm), look at xterm (1) and search for  boldColors.lIf your terminal uses a different color for bold, this allows an 8-color terminal to really have 16 colors.¶rainbow@Change the foreground color for both 8- and 256-color terminals.·rainbow@Change the background color for both 8- and 256-color terminals.¸rainbowEnsures that a l… affects only a 256-color terminal. For instance, to make text that is blue on an 8-color terminal but red on a 256-color terminal: ­ $ chunk "Blue on 8, red on 256" & ¶ (½ <> ¸ º) )\bl¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉ)\b®¯°±²³´µl¶·¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈɸ¤¥¦§¨©«ª¬­Ù      !"#$%&'()*+,-./0123456789:;<<=>?@ABCDEFGHIJKLMNOPQQRSTUVWXYZ[\]]^_`abcdefghijkllmnopqrstuvwxyz{|}~€ABEG@CDF‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤ABEG@CDFUT¥ !"#$%&'(w¦§¨©ª«¬­®¯°®¯±®²³®´µ®´¶®·¸¹º»¼'rainbow-0.34.0.0-Lnf0BnAGnnoHNG5SpC8QhM Rainbow.TypesRainbow.TranslateRainbow Paths_rainbowFormat_bold_faint_italic _underline_blink_inverse _invisible _strikeoutEnum8E0E1E2E3E4E5E6E7Color enum8toWord8blackredgreenyellowbluemagentacyanwhitegrey brightRed brightGreen brightYellow brightBlue brightMagenta brightCyan brightWhite $fMonoidColor$fSemigroupColor $fEqColor $fShowColor $fOrdColor$fGenericColor$fFunctorColor$fFoldableColor$fTraversableColor $fEqEnum8 $fOrdEnum8 $fShowEnum8$fBoundedEnum8 $fEnumEnum8$fGenericEnum8 $fShowFormat $fEqFormat $fOrdFormat$fGenericFormatStyle_fore_back_formatblinkboldfaintinverse invisibleitalic strikeout underline$fMonoidFormat$fSemigroupFormat $fShowStyle $fEqStyle $fOrdStyle$fGenericStyle$fFunctorStyle$fFoldableStyle$fTraversableStyleScheme_style8 _style256backforeformat $fMonoidStyle$fSemigroupStyle $fEqScheme $fOrdScheme $fShowScheme$fGenericSchemeChunk_scheme_yarnstyle256style8chunk$fMonoidScheme$fSemigroupScheme $fMonoidChunk$fIsStringChunk$fSemigroupChunk $fEqChunk $fShowChunk $fOrdChunk$fGenericChunkRadiant_color8 _color256schemeyarn$fMonoidRadiant$fSemigroupRadiant $fEqRadiant $fOrdRadiant $fShowRadiant$fGenericRadiantcolor256color8singleescapecsisgrparams sgrSingle sgrDouble normalDefault foreBlackforeRed foreGreen foreYellowforeBlue foreMagentaforeCyan foreWhite foreDefault backBlackbackRed backGreen backYellowbackBlue backMagentabackCyan backWhite backDefaultfore256back256 foreColor8 backColor8 renderFormat renderStyle8renderStyle256rendertoByteStringsColors0toByteStringsColors8toByteStringsColors256byteStringMakerFromEnvironmentbyteStringMakerFromHandlechunksToByteStrings hPutChunks putChunksputChunk putChunkLnonly256version getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebase GHC.MaybeNothingMaybeGHC.WordWord8GHC.BasememptyMonoidGHC.IO.Handle.TypesHandlebytestring-0.10.8.2Data.ByteString.Internal ByteString