!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred@A chunk is some textual data coupled with a description of what : color the text is, attributes like whether it is bold or A underlined, etc. The chunk knows what foreground and background D colors and what attributes to use for both an 8 color terminal and  a 256 color terminal. AThe TextSpec bundles together the styles for the 8 and 256 color ? terminals, so that the text can be portrayed on any terminal. @Describes text appearance (foreground and background colors, as B well as other attributes such as bold) for a 256 color terminal. @Describes text appearance (foreground and background colors, as A well as other attributes such as bold) for an 8 color terminal. 2Style elements that apply in both 8 and 256 color E terminals. However, the elements are described separately for 8 and = 256 color terminals, so that the text appearance can change . depending on how many colors a terminal has. #"Which terminal definition to use. $?Use the terminal with this given name. You might get this from @ the TERM environment variable, or set it explicitly. A runtime < error will result if the terminfo database does not have a = definition for this terminal. If this terminal supports 256 B colors, then 256 colors are used. If this terminal supports less ; than 256 colors, but at least 8 colors, then 8 colors are & used. Otherwise, no colors are used. %?Using this terminal should always succeed. This suppresses all C colors. Uesful if output is not going to a TTY, or if you just do  not like colors. &:Gets the terminal definition from the environment. If the 0 environment does not have a TERM veriable, use %. '@Gets the terminal definition from the environment. If the first < argument is True, the terminal is always obtained from the E environment. If it is False, the terminal is only obtained from the D environment if the given handle is not a terminal; otherwise, Dumb  is returned. :Gets the right set of terminal codes to apply the desired < highlighting, bold, underlining, etc. Be sure to apply the 8 attributes first (bold, underlining, etc) and then the C colors. Setting the colors first and then the attributes seems to ( reset the colors, giving blank output. (ASends a list of chunks to the given handle for printing. Sets up B the terminal (this only needs to be done once.) Lazily processes  the list of Chunk. See ) for notes on how many colors  are used. )@Sends a list of chunks to standard output for printing. Sets up B the terminal (this only needs to be done once.) Lazily processes  the list of Chunk. 'Which colors are used depends upon the # . If it is %, + then no colors are used on output. If the # is specified with  $:, the UNIX terminfo library is used to determine how many C colors the terminal supports. If it supports at least 256 colors, E then 256 colors are used. If it supports at least 8 colors but less E than 256 colors, then 256 colors are used. Otherwise, no colors are ) used. A runtime error will occur if the $ is not found in  the system terminal database. *'Print one chunk at a time, to a handle +.Print one chunk at a time, to standard output ,9Print one chunk at a time, to a handle, append a newline -@Print one chunk at a time, to standard output, append a newline >ABold. What actually happens when you use Bold is going to depend E on your terminal. For example, xterm allows you actually use a bold C font for bold, if you have one. Otherwise, it might simulate bold B by using overstriking. Another possibility is that your terminal D might use a different color to indicate bold. For more details (at 4 least for xterm), look at xterm (1) and search for  boldColors. AIf your terminal uses a different color for bold, this allows an , 8-color terminal to really have 16 colors.   !"#$%&'9Use True if the user always wants to see colors, even if : standard output is not a terminal. Otherwise, use False. <Check this handle to see if it is a terminal (typically you  will use stdout). ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~#%$&' )(+-*,>?DEBC@A./0123458967<=:;FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ "! ~   !"#%$&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~rainbow-0.6.0.0System.Console.Rainbowbase Data.String fromStringIsString Data.Monoid<>mconcatmappendmemptyMonoidChunktextSpectextTextSpecstyle8style256Style256 foreground256 background256 common256Style8 foreground8 background8common8 StyleCommonscBold scUnderlinescFlash scInverse Foreground256 Foreground8 Background256 Background8TermTermNameDumb termFromEnvsmartTermFromEnv hPutChunks putChunks hPutChunkputChunk hPutChunkLn putChunkLnbold8bold8off underline8 underline8offflash8 flash8offinverse8 inverse8off underline256underline256offbold256 bold256off inverse256 inverse256offflash256 flash256offboldboldOffinverse inverseOffflashflashOff underline underlineOff f_defaultf_blackf_redf_greenf_yellowf_blue f_magentaf_cyanf_white b_defaultb_blackb_redb_greenb_yellowb_blue b_magentab_cyanb_white c8_f_default c8_f_blackc8_f_red c8_f_green c8_f_yellow c8_f_blue c8_f_magenta c8_f_cyan c8_f_white c8_b_default c8_b_blackc8_b_red c8_b_green c8_b_yellow c8_b_blue c8_b_magenta c8_b_cyan c8_b_whitec256_f_defaultc256_f_0 c256_f_blackc256_f_1 c256_f_redc256_f_2 c256_f_greenc256_f_3 c256_f_yellowc256_f_4 c256_f_bluec256_f_5c256_f_magentac256_f_6 c256_f_cyanc256_f_7 c256_f_whitec256_f_8 c256_f_greyc256_f_9c256_f_red_bright c256_f_10c256_f_green_bright c256_f_11c256_f_yellow_bright c256_f_12c256_f_blue_bright c256_f_13c256_f_magenta_bright c256_f_14c256_f_cyan_bright c256_f_15c256_f_white_bright c256_f_16 c256_f_17 c256_f_18 c256_f_19 c256_f_20 c256_f_21 c256_f_22 c256_f_23 c256_f_24 c256_f_25 c256_f_26 c256_f_27 c256_f_28 c256_f_29 c256_f_30 c256_f_31 c256_f_32 c256_f_33 c256_f_34 c256_f_35 c256_f_36 c256_f_37 c256_f_38 c256_f_39 c256_f_40 c256_f_41 c256_f_42 c256_f_43 c256_f_44 c256_f_45 c256_f_46 c256_f_47 c256_f_48 c256_f_49 c256_f_50 c256_f_51 c256_f_52 c256_f_53 c256_f_54 c256_f_55 c256_f_56 c256_f_57 c256_f_58 c256_f_59 c256_f_60 c256_f_61 c256_f_62 c256_f_63 c256_f_64 c256_f_65 c256_f_66 c256_f_67 c256_f_68 c256_f_69 c256_f_70 c256_f_71 c256_f_72 c256_f_73 c256_f_74 c256_f_75 c256_f_76 c256_f_77 c256_f_78 c256_f_79 c256_f_80 c256_f_81 c256_f_82 c256_f_83 c256_f_84 c256_f_85 c256_f_86 c256_f_87 c256_f_88 c256_f_89 c256_f_90 c256_f_91 c256_f_92 c256_f_93 c256_f_94 c256_f_95 c256_f_96 c256_f_97 c256_f_98 c256_f_99 c256_f_100 c256_f_101 c256_f_102 c256_f_103 c256_f_104 c256_f_105 c256_f_106 c256_f_107 c256_f_108 c256_f_109 c256_f_110 c256_f_111 c256_f_112 c256_f_113 c256_f_114 c256_f_115 c256_f_116 c256_f_117 c256_f_118 c256_f_119 c256_f_120 c256_f_121 c256_f_122 c256_f_123 c256_f_124 c256_f_125 c256_f_126 c256_f_127 c256_f_128 c256_f_129 c256_f_130 c256_f_131 c256_f_132 c256_f_133 c256_f_134 c256_f_135 c256_f_136 c256_f_137 c256_f_138 c256_f_139 c256_f_140 c256_f_141 c256_f_142 c256_f_143 c256_f_144 c256_f_145 c256_f_146 c256_f_147 c256_f_148 c256_f_149 c256_f_150 c256_f_151 c256_f_152 c256_f_153 c256_f_154 c256_f_155 c256_f_156 c256_f_157 c256_f_158 c256_f_159 c256_f_160 c256_f_161 c256_f_162 c256_f_163 c256_f_164 c256_f_165 c256_f_166 c256_f_167 c256_f_168 c256_f_169 c256_f_170 c256_f_171 c256_f_172 c256_f_173 c256_f_174 c256_f_175 c256_f_176 c256_f_177 c256_f_178 c256_f_179 c256_f_180 c256_f_181 c256_f_182 c256_f_183 c256_f_184 c256_f_185 c256_f_186 c256_f_187 c256_f_188 c256_f_189 c256_f_190 c256_f_191 c256_f_192 c256_f_193 c256_f_194 c256_f_195 c256_f_196 c256_f_197 c256_f_198 c256_f_199 c256_f_200 c256_f_201 c256_f_202 c256_f_203 c256_f_204 c256_f_205 c256_f_206 c256_f_207 c256_f_208 c256_f_209 c256_f_210 c256_f_211 c256_f_212 c256_f_213 c256_f_214 c256_f_215 c256_f_216 c256_f_217 c256_f_218 c256_f_219 c256_f_220 c256_f_221 c256_f_222 c256_f_223 c256_f_224 c256_f_225 c256_f_226 c256_f_227 c256_f_228 c256_f_229 c256_f_230 c256_f_231 c256_f_232 c256_f_233 c256_f_234 c256_f_235 c256_f_236 c256_f_237 c256_f_238 c256_f_239 c256_f_240 c256_f_241 c256_f_242 c256_f_243 c256_f_244 c256_f_245 c256_f_246 c256_f_247 c256_f_248 c256_f_249 c256_f_250 c256_f_251 c256_f_252 c256_f_253 c256_f_254 c256_f_255c256_b_defaultc256_b_0 c256_b_blackc256_b_1 c256_b_redc256_b_2 c256_b_greenc256_b_3 c256_b_yellowc256_b_4 c256_b_bluec256_b_5c256_b_magentac256_b_6 c256_b_cyanc256_b_7 c256_b_whitec256_b_8 c256_b_greyc256_b_9c256_b_red_bright c256_b_10c256_b_green_bright c256_b_11c256_b_yellow_bright c256_b_12c256_b_blue_bright c256_b_13c256_b_magenta_bright c256_b_14c256_b_cyan_bright c256_b_15c256_b_white_bright c256_b_16 c256_b_17 c256_b_18 c256_b_19 c256_b_20 c256_b_21 c256_b_22 c256_b_23 c256_b_24 c256_b_25 c256_b_26 c256_b_27 c256_b_28 c256_b_29 c256_b_30 c256_b_31 c256_b_32 c256_b_33 c256_b_34 c256_b_35 c256_b_36 c256_b_37 c256_b_38 c256_b_39 c256_b_40 c256_b_41 c256_b_42 c256_b_43 c256_b_44 c256_b_45 c256_b_46 c256_b_47 c256_b_48 c256_b_49 c256_b_50 c256_b_51 c256_b_52 c256_b_53 c256_b_54 c256_b_55 c256_b_56 c256_b_57 c256_b_58 c256_b_59 c256_b_60 c256_b_61 c256_b_62 c256_b_63 c256_b_64 c256_b_65 c256_b_66 c256_b_67 c256_b_68 c256_b_69 c256_b_70 c256_b_71 c256_b_72 c256_b_73 c256_b_74 c256_b_75 c256_b_76 c256_b_77 c256_b_78 c256_b_79 c256_b_80 c256_b_81 c256_b_82 c256_b_83 c256_b_84 c256_b_85 c256_b_86 c256_b_87 c256_b_88 c256_b_89 c256_b_90 c256_b_91 c256_b_92 c256_b_93 c256_b_94 c256_b_95 c256_b_96 c256_b_97 c256_b_98 c256_b_99 c256_b_100 c256_b_101 c256_b_102 c256_b_103 c256_b_104 c256_b_105 c256_b_106 c256_b_107 c256_b_108 c256_b_109 c256_b_110 c256_b_111 c256_b_112 c256_b_113 c256_b_114 c256_b_115 c256_b_116 c256_b_117 c256_b_118 c256_b_119 c256_b_120 c256_b_121 c256_b_122 c256_b_123 c256_b_124 c256_b_125 c256_b_126 c256_b_127 c256_b_128 c256_b_129 c256_b_130 c256_b_131 c256_b_132 c256_b_133 c256_b_134 c256_b_135 c256_b_136 c256_b_137 c256_b_138 c256_b_139 c256_b_140 c256_b_141 c256_b_142 c256_b_143 c256_b_144 c256_b_145 c256_b_146 c256_b_147 c256_b_148 c256_b_149 c256_b_150 c256_b_151 c256_b_152 c256_b_153 c256_b_154 c256_b_155 c256_b_156 c256_b_157 c256_b_158 c256_b_159 c256_b_160 c256_b_161 c256_b_162 c256_b_163 c256_b_164 c256_b_165 c256_b_166 c256_b_167 c256_b_168 c256_b_169 c256_b_170 c256_b_171 c256_b_172 c256_b_173 c256_b_174 c256_b_175 c256_b_176 c256_b_177 c256_b_178 c256_b_179 c256_b_180 c256_b_181 c256_b_182 c256_b_183 c256_b_184 c256_b_185 c256_b_186 c256_b_187 c256_b_188 c256_b_189 c256_b_190 c256_b_191 c256_b_192 c256_b_193 c256_b_194 c256_b_195 c256_b_196 c256_b_197 c256_b_198 c256_b_199 c256_b_200 c256_b_201 c256_b_202 c256_b_203 c256_b_204 c256_b_205 c256_b_206 c256_b_207 c256_b_208 c256_b_209 c256_b_210 c256_b_211 c256_b_212 c256_b_213 c256_b_214 c256_b_215 c256_b_216 c256_b_217 c256_b_218 c256_b_219 c256_b_220 c256_b_221 c256_b_222 c256_b_223 c256_b_224 c256_b_225 c256_b_226 c256_b_227 c256_b_228 c256_b_229 c256_b_230 c256_b_231 c256_b_232 c256_b_233 c256_b_234 c256_b_235 c256_b_236 c256_b_237 c256_b_238 c256_b_239 c256_b_240 c256_b_241 c256_b_242 c256_b_243 c256_b_244 c256_b_245 c256_b_246 c256_b_247 c256_b_248 c256_b_249 c256_b_250 c256_b_251 c256_b_252 c256_b_253 c256_b_254 c256_b_255 getTermCodes defaultColors commonAttrs hPrintChunkfc8bc8fc256bc256 $fMonoidChunk$fIsStringChunk$fMonoidTextSpec$fMonoidStyle256$fMonoidStyle8$fMonoidStyleCommon