úÎUQR¥3      !"#$%&'()*+,-./012)This is a special version of the regular 3 function. : It works by directly calling the low-level internal GHC ( primitives, and thus is as fast as you'd expect for such  a trivial operation. (The standard 3$ function does something crazy like  converting a Double to a numerator/ denominator Integer > pair and then computing the integer part of the quotient as  an Integer, then truncating that to a Word8 . Which, # obviously, is ludicrously slow.) 6Hopefully one day the need for this low-level hackery  will disappear. The Colour5 type. Stores a red, a green and a blue component as  strict, unboxed Word8* values. (So it should be quite efficient @ in time and space.) Also provides various class instances for  arithmetic, etc. >Note that 0x00 is assumed to mean zero, and 0xFF to mean one.  That means that (*)* is slightly slower than you might expect 7 due to the extra steps required for renormalisation; (+) and  (-) are still efficient, however. 'Apply a function to every channel of a Colour8. (Mostly used 8 internally; exposed here in case it might be useful.) The colour equivilent of Data.List.zipWith. (Mostly used 8 internally; exposed here in case it might be useful.) -Use a function to fold the three values in a Colour8 into B a single value. No particular order of application is promised.  Convert a Word8 into a shade of grey. Scale a Colour8+ by the specified amount. Recall that 0x00 C means zero, and 0xFF means one. This means that it is impossible  to make a colour brighter", only darker. It also means this ? operation is modestly inefficient due to the renormalisation  steps. Constant: Black. Constant: Red. Constant: Yellow. Constant: Green. Constant: Cyan. Constant: Blue. Constant: Magenta. Constant: White.    The Colour5 type. Stores a red, a green and a blue component as  strict, unboxed Double* values. (So it should be quite efficient @ in time and space.) Also provides various class instances for B arithmetic, etc. It is generally assumed that each channel will 7 have a value somewhere between 0 and 1 at all times.  Note that (*)4 acts channel-wise. This is usually what is wanted. <Apply a function to every channel in a colour. (Mostly used : internally, but exposed here in case it may be useful.) This is similar to Data.List.zipWith. (Mostly used internally, . but exposed here in case it may be useful.) Use a function to collapse a Colour into a Double. No / particular order of application is promised. Turn a Double into a shade of grey. Scale a Colour- by a specified amount. (That is, change the - brightness while not affecting the shade.) Take a Colour) and clip all channels to the range 0--1 ; inclusive. Any value outside that range will be replaced ; with the nearest endpoint (i.e., 0 for negative numbers, 7 1 for positive numbers higher than 1). Values inside  the range are unaffected. !"Constant: Black. #Constant: Red. $Constant: Yellow. %Constant: Green. &Constant: Cyan. 'Constant: Blue. (Constant: Magenta. )Constant: White.  !"#$%&'() !"#$%&'() !"#$%&'()*;This is a colour map with has optional repeating behaviour  using . above. +Colour map which repeats. ,"Colour map which does not repeat. -<This is the basic colour map type. It consists of a list of ; control points, each one being a parameter value and the 6 colour at that parameter value. The colour at other 8 parameter values is linearly interpolated between the  control points. :Parameter values outside the range (i.e., below the first 8 point or above the last point) take the colour of the 7 end control point. This means that in the degenerate 8 case of a single control point, the colour is applied 3 everywhere (and the parameter value is ignored).  A map with zero" control points is not permitted. .6Takes a range and a value, and returns a value inside 9 the given range. If the value is already in the range,  it is unchanged. Otherwise it " wraps around". For  example, if the range is (0, 1) then, in effect, 0 the fractional part of the value is returned. 8Note that extremely narrow ranges may exhibit numerical  instability. /2Compute the value of a colour map at a particular  parameter value. 07Compute the value of a full colour map at a particular  parameter value, similar to /. *+,-./0.-/*,+0*,++,-./01 Convert a  into a . Recall that 9 0x00 means zero and 0xFF means one; this function will # remap such values appropriately. 2 Convert a  into a . Any values outside  the range 0--1 will be wrapped to that range. You may  want to run ! before calling this function to 8 prevent this behaviour (unless you know the values can't 8 be outside the permitted range). This function is the  exact inverse of 1; 0 is mapped to 0x00 and  1 is mapped to 0xFF. %  !"#$%&'()12%! ")#$%&'( 12124      !"#$%&'()*+,-./0123456789:AC-Colour-1.1.3Data.Colour.FastFloorData.Colour.Word8Data.Colour.DoubleData.Colour.Map Data.Colour fast_floorColour8red8green8blue8c8mapc8zipc8foldgrey8c8scaleunpack8pack8c8Blackc8Redc8Yellowc8Greenc8Cyanc8Blue c8Magentac8WhiteColourredgreenbluecmapczipcfoldgreycscaleclipunpackpackcBlackcRedcYellowcGreencCyancBluecMagentacWhite FullColourMap RepeatingMap SimpleMap ColourMap range_cycle colour_mapfull_colour_mapcpromotecdemotebaseGHC.Realfloor