t      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None2Style 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. @Describes text appearance (foreground and background colors, as A well as other attributes such as bold) for an 8 color terminal. @Describes text appearance (foreground and background colors, as B well as other attributes such as bold) for 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. .@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. :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. 4ASends 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 5 for notes on how many colors  are used. 5@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. 6'Print one chunk at a time, to a handle 7.Print one chunk at a time, to standard output 89Print one chunk at a time, to a handle, append a newline 9@Print one chunk at a time, to standard output, append a newline JABold. 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{|}~./01547968JKPQNOLM:;<=>?@ADEBCHIFGRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#'()* &$%-+,32  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !""#$%&'())*+,-.//0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~rainbow-0.4.0.0System.Console.Rainbowbase Data.String fromStringIsString Data.Monoid<>mconcatmappendmemptyMonoid StyleCommon_scBold _scUnderline_scFlash _scInverse Foreground256 Foreground8 Background256 Background8TermTermNameDumb termFromEnvsmartTermFromEnvStyle8 _foreground8 _background8_common8scBoldscFlash scInverse scUnderlineStyle256_foreground256_background256 _common256 background8common8 foreground8TextSpec_style8 _style256 background256 common256 foreground256Chunk _textSpec_texttexttextSpec 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$fMonoidStyleCommon$fMonoidStyle8$fMonoidStyle256style256style8$fMonoidTextSpec defaultColors commonAttrs hPrintChunk $fMonoidChunk$fIsStringChunk