^[;=      !"#$%&'()*+,-./0123456789:;< Safe-InferredQThe integral colour. It stores three channels (red, green and blue) as linear =q values ranging from 0 to 255. (0 represents minimum intensity, 255 represents maximum. Black is therefore  Colour8 0 0 0 and white is Colour8 255 255 255.) LThe channel values are stored as strict, unboxed fields, so operating on Colour82s should be quite efficient in time and space. The > and ?% instances provide arithmetic for Colour8 s. Note that (*)7 acts channel-wise; this is usually what is wanted. 'Apply a function to every channel of a Colour8H. (Mostly used internally; exposed here in case it might be useful.) The colour equivilent of H. (Mostly used internally; exposed here in case it might be useful.) -Use a function to fold the three values in a Colour8I into 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 means zero, and 0xFF means one. This means that it is impossible to make a colour brighterl, only darker. It also means this operation is modestly inefficient due to the renormalisation steps.  Convert a  to a tuple. Convert a tuple to a . Constant: Black. Constant: Red. Constant: Yellow. Constant: Green. Constant: Cyan. Constant: Blue. Constant: Magenta. Constant: White.       Safe-InferredRThe main colour type. It stores three channels (red, green and blue) as linear @v values normally ranging from 0 to 1. (0 represents minimum intensity, 1 represents maximum. Black is therefore  Colour 0 0 0 and white is  Colour 1 1 1.) LThe channel values are stored as strict, unboxed fields, so operating on Colour/s should be quite efficient in time and space. The > and ?% instances provide arithmetic for Colour s. Note that (*)7 acts channel-wise; this is usually what is wanted. wApply a function to every channel in a colour. (Mostly used internally, but exposed here in case it may be useful.) This is similar to J. (Mostly used internally, but exposed here in case it may be useful.) Use a function to collapse a Colour into a Double5. 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, 1 for positive numbers higher than 1). Values inside the range are unaffected.  Convert a  into a tuple. !Convert a tuple into a . "Constant: Black. #Constant: Red. $Constant: Yellow. %Constant: Green. &Constant: Cyan. 'Constant: Blue. (Constant: Magenta. )Constant: White.  !"#$%&'()*+ !"#$%&'()+* !"#$%&'() !"#$%&'()*+ Safe-Inferred,DThis is a colour map with has optional repeating behaviour using 0 above. hNotice that the parameter range that gets repeated need not cover the entire range of the underlying /. -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 colour at that parameter value. The colour at other parameter values is linearly interpolated between the control points. Parameter values outside the range (i.e., below the first point or above the last point) take the colour of the end control point. This means that in the degenerate case of a single control point, the colour is applied everywhere (and the parameter value is ignored).  A map with zero" control points is not permitted. 0Takes a range and a value, and returns a value inside 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)C then, in effect, the fractional part of the value is returned. HNote that extremely narrow ranges may exhibit numerical instability. 1FCompute the value of a colour map at a particular parameter value. 2VCompute the value of a full colour map at a particular parameter value, similar to 1. ,-./01A2,-./0120/1,.-2,.-/01A2 Safe-Inferred3 Convert a  into a l. Recall that 0x00 means zero and 0xFF means one; this function will remap such values appropriately. 4 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 prevent this behaviour (unless you know the values can't be outside the permitted range). This function is the exact inverse of 32; 0 is mapped to 0x00 and 1 is mapped to 0xFF. 34%  !"#$%&'()34%! ")#$%&'(  3434 Safe-Inferred5*Type for holding sRGB colour values (with = components).  The standard  type is for linearE RGB values. This type is for sRGB colours, which are non-linear. 7*Type for holding sRGB colour values (with @ components).  The standard  type is for linearE RGB values. This type is for sRGB colours, which are non-linear. 99Convert a linear RGB value into a non-linear sRGB value. : Convert from @ components to = components. ; Convert from = components to @ components. <9Convert a non-linear sRGB value into a linear RGB value. 56789:;<56789:;<78569:;<56789:;<B      !"#$%&'()*+,-./0123456789:;;<<=>?@ABCADEAFGHIJKLAC-Colour-1.1.5Data.Colour.Word8Data.Colour.DoubleData.Colour.Map Data.ColourData.Colour.Nonlinear Data.ListzipWithColour8red8green8blue8c8mapc8zipc8foldgrey8c8scaleunpack8pack8c8Blackc8Redc8Yellowc8Greenc8Cyanc8Blue c8Magentac8White $fNumColour8ColourredgreenbluecmapczipcfoldgreycscaleclipunpackpackcBlackcRedcYellowcGreencCyancBluecMagentacWhite$fFractionalColour $fNumColour FullColourMap RepeatingMap SimpleMap ColourMap range_cycle colour_mapfull_colour_mapcpromotecdemote Colour8_sRGB Colour_sRGBcolour_to_sRGB cdemote_sRGB cpromote_sRGBcolour_from_sRGBbaseGHC.WordWord8GHC.NumNumGHC.Real Fractionalghc-prim GHC.TypesDouble cm_internal