?S      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()* + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                              !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~              !!!!!%(c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)SafeiS-+Copied from Graphics.Rendering.Cairo.MatrixThe path type used by Charts.@A path can consist of several subpaths. Each is started by a  \ operation. All subpaths are open, except the last one, which may be closed using the F operation. When filling a path all subpaths are closed implicitly.eClosing a subpath means that a line is drawn from the end point to the start point of the subpath.If a   (or  ) is drawn a implicit line from the last end point of the subpath is drawn to the beginning of the arc. Another implicit line is drawn from the end of an arc to the beginning of the next path segment.:The beginning of a subpath is either (0,0) or set by a  z instruction. If the first subpath is started with an arc the beginning of that subpath is the beginning of the arc.Edge of a rectangle.%A rectangle is defined by two points."A function mapping between points.A vector in two dimensions.!A point in two dimensions.% Convert a ! to a .&9Angle of a vector (counterclockwise from positive x-axis)'Length/magnitude of a vector(Scale a vector by a constant.)Add a point and a vector.*Subtract a vector from a point.+Subtract two points.,:Create a rectangle based upon the coordinates of 4 points.-&Test if a point is within a rectangle..[Intersects the rectangles. If they intersect the intersection rectangle is returned. . is the empty rectangle / intersection and  is the infinite plane./Make a path from a rectangle.0-Move the paths pointer to the given location.1Short-cut for 0 , if you don't want to create a !.2XMove the paths pointer to the given location and draw a straight line while doing so.3Short-cut for 2 , if you don't want to create a !.44Draw the arc of a circle. A straight line connects the end of the previous path with the beginning of the arc. The zero angle points in direction of the positive x-axis. Angles increase in clock-wise direction. If the stop angle is smaller then the start angle it is increased by multiples of 2 * pi until is is greater or equal.5Short-cut for 4 , if you don't want to create a !.6Like 4N, but draws from the stop angle to the start angle instead of between them.7Short-cut for 6 , if you don't want to create a !.81A closed empty path. Closes a path when appended.9*Fold the given path to a monoid structure.:eEnriches the path with explicit instructions to draw lines, that otherwise would be implicit. See 7 for details about what lines in paths are implicit. Utility for :.;)Transform a point using the given matrix.<CRotate a point around the origin. The angle is given in radians.=Scale a point.>Translate a point.+Copied from Graphics.Rendering.Cairo.Matrix+Copied from Graphics.Rendering.Cairo.Matrix?+Copied from Graphics.Rendering.Cairo.Matrix@7Copied and adopted from Graphics.Rendering.Cairo.MatrixA7Copied and adopted from Graphics.Rendering.Cairo.MatrixBSCopied from Graphics.Rendering.Cairo.Matrix Rotations angle is given in radians.C+Copied from Graphics.Rendering.Cairo.MatrixD+Copied from Graphics.Rendering.Cairo.MatrixE+Copied from Graphics.Rendering.Cairo.MatrixGwPaths are monoids. After a path is closed you can not append anything to it anymore. The empty path is open. Use 8 to close a path.H+Copied from Graphics.Rendering.Cairo.Matrix4Center point of the circle arc.Radius of the circle.&Angle to start drawing at, in radians.%Angle to stop drawing at, in radians.9MoveToLineToArcArcNegClose Path to foldF  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF!"#$ %,/)*+&'(-. 2031456789:;=<>?BA@CDE  !"#$(c) Tim Docker 2014BSD-style (see chart/COPYRIGHT)None/N2Holds the point and coordinate alignment function.P[An adjustment applied immediately prior to points being displayed in device coordinates.When device coordinates correspond to pixels, a cleaner image is created if this transform rounds to the nearest pixel. With higher-resolution output, this transform can just be the identity function.0This is usually used to align prior to stroking.QMThe adjustment applied immediately prior to coordinates being transformed./This is usually used to align prior to filling.R:A function to align points for a certain rendering device.S$Abstract data type for a fill style.LThe contained action sets the required fill style in the rendering state.VText metrics returned by textSize.XThe total width of the text.Y'The ascent or space above the baseline.Z'The decent or space below the baseline.[The Y bearing.\The total height of the text.])Possible vertical anchor points for text.b+Possible horizontal anchor points for text.fData type for a font.h$The font family or font face to use.i6The height of the rendered font in device coordinates.jThe slant to render with.kThe weight to render with.lThe color to render text with.mThe possible weights of a font.n!Normal font style without weight.o Bold font.pThe possible slants of a font.q Normal font style without slant.rWith a slight slant.sWith a greater slant.t"Data type for the style of a line.v(The thickness of a line in device units.wThe color of a line.xThe dash pattern. Every value at a even index gives a dash width and every value at a odd index gives a gap width in device units.yHow to end a line.zHow to connect two lines.{/The different supported ways to join line ends.|/Extends the outline until they meet each other.}*Draw a circle fragment to connet line end.~CLike miter, but cuts it off if a certain threshold is exceeded."The different supported line ends.Just cut the line straight.Make a rounded line end.!Make a square that ends the line.-Alignment to render on raster based graphics.-Alignment to render on vector based graphics.The default line style.The default font slant.The default font weight.The default font style.The default fill style.BNOQPRSTUVW\[ZYX]a`_^bedcfglkjihmonpsrqtuzyxwv{~}|G{|}~tuvwxyzpqrsmnofghijklbcde]^_`aVWXYZ[\STURNOPQ NOPQSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) Tim Docker 2014BSD-style (see chart/COPYRIGHT)None&'; A 5 provides the capability to render a chart somewhere.uThe coordinate system of the backend has its initial origin (0,0) in the top left corner of the drawing plane. The x-axis points towards the top right corner and the y-axis points towards the bottom left corner. The unit used by coordinates, the font size, and lengths is the always the same, but depends on the backend. All angles are measured in radians.LThe line, fill and font style are set to their default values initially.]Information about the semantics of the instructions can be found in the documentation of .QThe abstract drawing operation generated when using the the chart drawing API.aSee the documentation of the different function for the correct semantics of each instruction:, , , , N, , , ;Stroke the outline of the given path using the current t. This function does not2 perform alignment operations on the path. See $ for the exact semantic of paths.&Fill the given path using the current SK. The given path will be closed prior to filling. This function does not5 perform alignment operations on the path. See ! for the exact semantic of paths. Calculate a V[ object with rendering information about the given string without actually rendering it.sDraw a single-line textual label anchored by the baseline (vertical) left (horizontal) point. Uses the current f for drawing.Apply the given transformation in this local environment when drawing. The given transformation is applied after the current transformation. This means both are combined.HUse the given font style in this local environment when drawing text.\An implementing backend is expected to guarentee to support the following font families: serif,  sans-serif and  monospace;If the backend is not able to find or load a given font it is required to fall back to a custom fail-safe font and use it instead.IUse the given fill style in this local environment when filling paths.JUse the given line style in this local environment when stroking paths.Use the given clipping rectangle when drawing in this local environment. The new clipping region is intersected with the given clip region. You cannot escape the clip! Get the point alignment function%Get the coordinate alignment function "(c) Tim Docker 2014BSD-style (see chart/COPYRIGHT)None"JNRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~JVWXYZ[\{|}~tuvwxyzSTUmnopqrsfghijklbcde]^_`aRN(c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)None24Abstract data type for the style of a plotted point.!The color to fill the point with.%The color to stroke the outline with.The width of the outline.;The radius of the tightest surrounding circle of the point. The shape.&The different shapes a point can have. A circle.(Number of vertices and is right-side-up? A plus sign.A cross."Combination of a cross and a plus.)Ratio of minor to major axis and rotation6Apply a local rotation. The angle is given in radians.Apply a local translation.Apply a local scale."Apply a local scale on the x-axis."Apply a local scale on the y-axis. Changes the t and S to comply with the given .<Align the path by applying the given function on all points.yAlign the path using the environment's alignment function for points. This is generally useful when stroking. See  and .}Align the path using the environment's alignment function for coordinates. This is generally useful when filling. See  and ."The points will be aligned by the W, so that when drawing bitmaps, 1 pixel wide lines will be centred on the pixels."The points will be aligned by the W, so that when drawing bitmaps, the edges of the region will fall between pixels.NAlign the point using the environment's alignment function for points. See .SAlign the point using the environment's alignment function for coordinates. See .NCreate a path by connecting all points with a line. The path is not closed.(Draw lines between the specified points.'Fill the region with the given corners.HDraw a line of text that is aligned at a different anchor point. See .Draw a textual label anchored by one of its corners or edges, with rotation. Rotation angle is given in degrees, rotation is performed around anchor point. See .Draw a multi-line textual label anchored by one of its corners or edges, with rotation. Rotation angle is given in degrees, rotation is performed around anchor point. See .6Calculate the correct offset to align the text anchor.<Calculate the correct offset to align the horizontal anchor.:Calculate the correct offset to align the vertical anchor.YReturn the bounding rectangle for a text string positioned where it would be drawn by  . See .=Get the width and height of the string when rendered. See .*Draw a single point at the given location.WThe default sequence of colours to use when plotings different data sets in a graph.'Create a solid line style (not dashed).Create a dashed line style.Style for filled circle points. Style for stroked circle points.!Style for stroked polygon points. Style for filled polygon points.Plus sign point style.Cross point style.*Combination of plus and cross point style.6Fill style that fill everything this the given colour. Default style to use for points. &Style to use when rendering the point. Position of the point to render.Width of line.Colour of line.Width of line.'The dash pattern in device coordinates.Colour of line.Radius of circle. Fill colour.Radius of circle.Thickness of line.Radius of circle.Thickness of line.Number of vertices.Is right-side-up?Colour of line.Radius of circle.Number of vertices.Is right-side-up? Fill color.&Radius of tightest surrounding circle.Thickness of line.Color of line.Radius of circle.Thickness of line.Color of line.Radius of circle.Thickness of line.Color of line.Radius of circle.Rotation (Tau)Thickness of line.Color of line.NRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~6(c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)None=A type class abstracting the conversion of a value to a Plot.+Interface to control plotting on a 2D area.kGiven the mapping between model space coordinates and device coordinates, render this plot into a chart.Details for how to show this plot in a legend. For each item the string is the text to show, and the function renders a graphical sample of the plot.jAll of the model space coordinates to be plotted. These are used to autoscale the axes where necessary.7Join any two plots together (they will share a legend).   (c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)None NValue defining a series of datapoints, and a style in which to render them.            (c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)None C_Value defining a series of (possibly disjointed) lines, and a style in which to render them.The lines to be plottedqAdditional lines to be plotted, specified using the Limit type to allow referencing the edges of the plot area.1Helper function to plot a single horizontal line./Helper function to plot a single vertical line.  !" ! "(c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)None#oValue defining some hidden x and y values. The values are not displayed, but they still affect axis scaling.#$%&()#$%&()#$%& (c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)None*jValue specifying a plot filling the area between two sets of Y coordinates, given common X coordinates.*+,-.123*+,-.213*+,-. (c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)None4SValue defining a series of error intervals, and a style in which to render them.?EValue for holding a point with associated error bounds for each axis.DDWhen the error is symmetric, we can simply pass in dx for the error.456789:;<=>?@ABCDIJKLM456789:;<=>?@ABCDLIKJM456789:;<=>?@ABC (c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)None#NA Value holding price intervals for a given x-coord. An alternative view is that these are statistical intervals: the 0th, 25th, 50th, 75th, and 100th percentiles.VValue defining a financial interval: opening and closing prices, with maxima and minima; and a style in which to render them. By convention, there are different fill styles depending on whether the price rises (open < close) or falls (close < open). (This plot type can also be re-purposed for statistical intervals, e.g. minimum, first quartile, median, third quartile, maximum.)NOPQRSTUVWXYZ[\]^_`defghijklVWXYZ[\]^_`NOPQRSTUjgildfhekNOPQRSTUV WXYZ[\]^_` Safe'maChecks if the given value is and actual numeric value and not a concept like NaN or infinity.n Version of  that returns a monadic value.mnmn (c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)None3>yBA type class abtracting the conversion of a value to a Renderable.{NA Renderable is a record of functions required to layout a graphic element.}-Calculate the minimum size of the renderable.~RDraw the renderable with a rectangle, which covers the origin to a given point.DThe resulting "pick" function maps a point in the image to a value.AA function that maps a point in device coordinates to some value.WPerhaps it might be generalised from Maybe a to (MonadPlus m ) => m a in the future.8Create a blank renderable with a specified minimum size.SCreate a blank renderable with a minimum size the same as some other renderable.7Replace the pick function of a renderable with another.LMap a function over the result of a renderable's pickfunction, keeping only  results.:Map a function over result of a renderable's pickfunction..Add some spacing at the edges of a renderable.2Overlay a renderable over a solid background fill.[Helper function for using a renderable, when we generate it in the BackendProgram monad.AConstruct a renderable from a text string, aligned with the axes.Construct a renderable from a text string, rotated wrt to axes. The angle of rotation is in degrees, measured clockwise from the horizontal.]Draw the specified rectangle such that its top-left vertex is placed at the given positionThe spacing to be added.The source renderable.#opqrstuvwxyz{|~}#{|}~yzopqrstuvwxopqrstuvwxyz{|}~>(c) Hitesh Jasani, 2008, Malcolm Wallace 2011, Tim Docker 2014BSD3NoneL&3Options to render the sparklines in different ways.smooth or bars step sizegraph height (pixels)data point limitsbackground colorcolor of minimum datapointcolor of maximum datapointcolor of last datapointdisplay minimum markerdisplay maximum markerdisplay last markerA sparkline is a single sequence of data values, treated as y-values. The x-values are anonymous and implicit in the sequence.'Default options for a smooth sparkline.)Default options for a barchart sparkline.%Create a renderable from a SparkLine.9Compute the width of a SparkLine, for rendering purposes.-Return the width and height of the SparkLine.(Render a SparkLine to a drawing surface. (c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)NoneTValue for describing a series of text annotations to be placed at arbitrary points on the graph. Annotations can be rotated and styled.CAngle, in degrees, to rotate the annotation about the anchor point.RRectangle which style determines the background of the annotation text and which qC determines the additional width and height of the background area(c) Tim Docker 2010, 2014BSD-style (see chart/COPYRIGHT)Nonek&Abstract datatype representing a grid.mA singleton grid item "a" spanning a given rectangle (measured in grid cells), with given space weight.One grid above the other. SizeD is their cached total size (so it is NOT specified manually).*One grid horizontally beside the other.+Two grids positioned one over the other.An empty 1x1 grid cell.An empty 0x0 grid cell.When more space is available for an item than the total width of items, extra added space is proportional to 'space weight'.3A 1x1 grid from a given value, with no extra space.KA WxH (measured in cells) grid from a given value, with space weight (1,1).A 1x1 empty grid.A 0x0 empty grid.CA value occupying 1 row with the same horizontal span as the grid.\A value placed below the grid, occupying 1 row with the same horizontal span as the grid.fA value placed to the left of the grid, occupying 1 column with the same vertical span as the grid.gA value placed to the right of the grid, occupying 1 column with the same vertical span as the grid.<A value placed under a grid, with the same span as the grid.;A value placed over a grid, with the same span as the grid.KOne grid over the other. The first argument is shallow, the second is deep.A synonym for .A synonym for .ASets the space weight of *every* cell of the grid to given value.(c) Tim Docker 2008, 2014  BSD-style (see chart/COPYRIGHT) Nonem""(c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)Nones29Defines the position of the legend, relative to the plot.Legends can be constructed in two orientations: in rows (where we specify the maximum number of columns), and in columns (where we specify the maximum number of rows)               (c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)None#iCollect the information we need to render an axis. The bool is true if the axis direction is reversed.XA function to generate the axis data, given the data values to be plotted against it..Control values for how an axis gets displayed.t to use for axis line and ticks. f to use for axis labels.!t to use for axis grid."1How far the labels are to be drawn from the axis.#@The basic data associated with an axis showing values of type x.%+Which parts of the axis shall be displayed.&@The _axis_viewport function maps values into device coordinates.'CThe _axis_tropweiv function maps device coordinates back to values.(The tick marks on the axis as pairs. The first element is the position on the axis (in viewport units) and the second element is the length of the tick in output coordinates. The tick starts on the axis, and positive numbers are drawn towards the plot area.)The labels on an axis as pairs. The first element of the pair is the position on the axis (in viewport units) and the second is the label text string. Note that multiple sets of labels can be specified, and are shown successively further away from the axis line.*RThe positions on the axis (in viewport units) where we want to show grid lines.+_Configures whick visual elements of a axis are shown at the appropriate edge of a plot area.-)Whether to display a line along the axis.."Whether to display the tick marks./Whether to display the labels.0[A typeclass abstracting the functions we need to be able to plot against an axis of type a4Construct a renderable from an axis, in order that it can be composed with other renderables and drawn. This does not include the drawing of the grid, which must be done separately by the ; function.5*Modifier to remove grid lines from an axis69Modifier to position grid lines to line up with the ticks7DModifier to position grid lines to line up with only the major ticks8:Modifier to position grid lines to line up with the labels9$Modifier to change labels on an axis:OCalculate the amount by which the labels extend beyond the ends of the axis.<eConstruct an axis given the positions for ticks, grid lines, and labels, and the labelling function=vConstruct an axis given the positions for ticks, grid lines, and labels, and the positioning and labelling functions> The default t of an axis.? The default t of a plot area grid.@3A linear mapping of points in one range to another.APThe inverse mapping from device co-ordinate range back to interesting values.B3A linear mapping of points in one range to another.C>An inverse linear mapping of points from one range to another.D+By default all parts of a axis are visible.7 !"#$%&'()*+,-./0123456789:;<=>?@ABCFGHIJKLMNOPQR7#$%&'()*+,-./ !"0123>?<=4;:@ABC67859GHFNMLKJIRQOP !"#$%&'()*+,-./0123(c) Tim Docker 2010BSD-style (see chart/COPYRIGHT)NoneSS(c) Tim Docker 2010, 2014BSD-style (see chart/COPYRIGHT)NoneEXHow to display a timeYHTimeSeq is a (potentially infinite) set of times. When passed a reference time, the function returns a a pair of lists. The first contains all times in the set less than the reference time in decreasing order. The second contains all times in the set greater than or equal to the reference time, in increasing order.Z_A typeclass abstracting the functions we need to be able to plot against an axis of time type d.)Map a UTCTime value to a plot coordinate.#Map a plot coordinate to a UTCTime.%Map a Day value to a plot coordinate.Map a plot coordinate to a Day._ Create an  to for a time axis.BThe values to be plotted against this axis can be created with doubleFromLocalTime.Implementation detail: 0 constraint is needed to use @.A Y for hours.`A Y for calendar days.aA Y for calendar months.bA Y for calendar years.A Y for no sequence at all.cAutomatically choose a suitable time axis, based upon the time range of data. The values to be plotted against this axis can be created with ]._LSet the minor ticks, and the final range will be aligned to its elements.Set the labels and grid.Set the second line of labels.Format t for labels.UVWXYZ[\]^_`abcYXUVWZ[\]^_c`abUVWZ[\]^(c) Tim Docker 2010, 2014BSD-style (see chart/COPYRIGHT)Nonek nHow to display a timeoHTimeSeq is a (potentially infinite) set of times. When passed a reference time, the function returns a a pair of lists. The first contains all times in the set less than the reference time in decreasing order. The second contains all times in the set greater than or equal to the reference time, in increasing order.p+Map a LocalTime value to a plot coordinate.%Map a plot coordinate to a LocalTime.q Create an  to for a time axis.BThe values to be plotted against this axis can be created with p.A o for hours.rA o for calendar days.sA o for calendar months.tA o for calendar years.A o for no sequence at all.uAutomatically choose a suitable time axis, based upon the time range of data. The values to be plotted against this axis can be created with p.qLSet the minor ticks, and the final range will be aligned to its elements.Set the labels and grid.Set the second line of labels.Format  for labels. klmnopqrstu onklmqurstpklm(c) Tim Docker 2010, 2014BSD-style (see chart/COPYRIGHT)NoneKwkType for capturing values plotted by index number (ie position in a list) rather than a numerical value.z9Augment a list of values with index numbers for plotting.{`Create an axis for values indexed by position. The list of strings are the labels to be used.wxyz{wxy{zwxy(c) Tim Docker 2010, 2014BSD-style (see chart/COPYRIGHT)NoneKV3 *The function used to show the axes labels.*The function used to show the axes labels.(The target number of labels to be shown.'The target number of ticks to be shown.XA wrapper class for doubles used to indicate they are to be plotted against a log axis._A wrapper class for doubles used to indicate they are to be plotted against a percentage axis.Show a list of axis labels. If some are too big or all are too small, switch to scientific notation for all. If the range is much smaller than the mean, use an offset. TODO: show this offset only once, not on every label. When thinking about improving this function,  Mhttps://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/ticker.py is a good read.showDs [0, 1, 2 :: Double] ["0","1","2"]&showDs [0, 1000000, 2000000 :: Double]["0.0e0","1.0e6","2.0e6"]"showDs [0, 0.001, 0.002 :: Double]["0","0.001","0.002"]/showDs [-10000000, -1000000, 9000000 :: Double]["-1.0e7","-1.0e6","9.0e6"]showDs [10, 11, 12 :: Double]["10","11","12"] showDs [100, 101, 102 :: Double]["100","101","102"])showDs [100000, 100001, 100002 :: Double]["100000","100001","100002"],showDs [1000000, 1000001, 1000002 :: Double]%["1.0e6 + 0","1.0e6 + 1","1.0e6 + 2"]/showDs [10000000, 10000001, 10000002 :: Double]%["1.0e7 + 0","1.0e7 + 1","1.0e7 + 2"]2showDs [-10000000, -10000001, -10000002 :: Double](["-1.0e7 + 2","-1.0e7 + 1","-1.0e7 + 0"]8let [s0, s1] = showDs [x, x + 1.0 :: Double] in s0 /= s1gChanges the behavior of showEFloat to drop more than one trailings 0. Instead of 1.000e4 you get 1.0e40Generate a linear axis with the specified boundsOGenerate a linear axis automatically, scaled appropriately for the input data.Given a target number of values, and a list of input points, find evenly spaced values from the set {1*X, 2*X, 2.5*X, 5*X} (where X is some power of ten) that evenly cover the input points.JGenerate a log axis automatically, scaled appropriate for the input data.(c) Tim Docker 2010, 2014BSD-style (see chart/COPYRIGHT)None-#(c) Tim Docker 2006BSD-style (see chart/COPYRIGHT)NoneGd !"#$%&'()*+,-./0123456789:;<=>?@ABCFGHIJKLMNOPQRSUVWXYZ[\]^_`abcwxyz{+(c) Anton Vorontsov <anton@enomsg.org> 2014BSD-style (see chart/COPYRIGHT)NoneSet to 1 (default) to normalize the length of vectors to a space between them (so that the vectors never overlap on the graph). Set to 0 to disable any scaling. Values in between 0 and 1 are also permitted to adjust scaling.$Provide a square-tiled regular grid.-Provide a vector field (R^2 -> R^2) function.0Provide a prepared list of (start,vector) pairs.(c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)None5Value describing how to plot a set of bars. Note that the input data is typed [(x,[y])], ie for each x value we plot several y values. Typically the size of each [y] list would be the same.gThis value specifies whether each value from [y] should be shown beside or above the previous value.The style in which to draw each element of [y]. A fill style is required, and if a linestyle is given, each bar will be outlined.DThe title of each element of [y]. These will be shown in the legend.This value controls how the widths of the bars are calculated. Either the widths of the bars, or the gaps between them can be fixed.sThis value controls how bars for a fixed x are aligned with respect to the device coordinate corresponding to x..The starting level for the chart (normally 0). The actual points to be plotted.kHow bars for a given (x,[y]) are aligned with respect to screen coordinate corresponding to x (deviceX).#The left edge of bars is at deviceX Bars are centered around deviceX$The right edge of bars is at deviceX'All bars have the same width in pixels.k(BarsFixGap g mw) means make the gaps between the bars equal to g, but with a minimum bar width of mwBBars for a fixed x are stacked vertically on top of each other.=Bars for a fixed x are put horizontally beside each other.   (c) Malcolm Wallace 2009BSD-style (see COPYRIGHT file)NoneA collection of unconnected spots, with x,y position, an independent z value to be represented by the area of the spot, and in addition, a fourth variable t to be represented by a colour from a given palette. (A linear transfer function from t to palette is assumed.)the largest size of spot~A collection of unconnected spots, with x,y position, and an independent z value to be represented by the area of the spot.the largest size of spot          NoneO&''binBounds a b n' generates bounds for n bins spaced linearly between a and b Examples:binBounds 0 3 4-[(0.0,0.75),(0.75,1.5),(1.5,2.25),(2.25,3.0)]='histValues a b n vs' returns the bins for the histogram of vs on the range from a to b with n binsF'histValues a b n vs' returns the bins for the weighted histogram of vs on the range from a to b with n bins;'histWithBins bins xs' is the histogram of weighted values xs with bins Examples::{ histWithBinsE (V.fromList [(0.0, 0.75), (0.75, 1.5), (1.5, 2.25), (2.25, 3.0)])< [(1, 0), (1, 0), (1, 1), (1, 2), (1, 2), (1, 2), (1, 3)]:}=[((0.0,0.75),2),((0.75,1.5),1),((1.5,2.25),3),((2.25,3.0),1)]None;=5  Plot titleNumber of binsValues to histogram_Don't attempt to plot bins with zero counts. Useful when the y-axis is logarithmically scaled. (Override the range of the histogram. If Nothing the range of _plot_hist_values is used.}Note that any normalization is always computed over the full data set, including samples not falling in the histogram range.! Plot vertical lines between bins"Fill style of the bins#Line style of the bin outlines$Normalization function%:The default style is an unnormalized histogram of 20 bins.&defaultPlotHist but with real counts'defaultPlotHist@ but normalized such that the integral of the histogram is one.( Convert a PlotHist to a Plot)N.B. In principle this should be Chart's ToPlot| class but unfortunately this does not allow us to set bounds on the x and y axis types, hence the need for this function. !"#$%&'(*+,-./012 !"#$(%&'1*2.0+-,/  !"#$$(c) Tim Docker 2006BSD-style (see chart/COPYRIGHT)None6      !"#$%&()*+,-.123456789:;<=>?@ABCDIJKLMNOPQRSTUVWXYZ[\]^_`defghijkl      !"#$%&'(*+,-./012(c) Tim Docker 2006, 2014BSD-style (see chart/COPYRIGHT)NoneCVQ3$A container for a set of vertically 7:s. The x axis of the different layouts will be aligned.5FThe stacked layouts from top (first element) to bottom (last element).6GIf the different legends shall be combined in one legend at the bottom.7A layout with its y type hidden, so that it can be stacked with other layouts with differing y axis, but the same x axis. See 3.8A K to stack.9A : to stack.:A LayoutLR value is a single plot area, with an x axis and independent left and right y axes, with a title at the top; legend at the bottom. It's parametrized by the types of values to be plotted on the x and two y axes.<)How to fill the background of everything.=UHow to fill the background of the plot, if different from the overall background.>!Title to display above the chart.? Font style to use for the title.@Rules to generate the x axis.A$Visibility options for the top axis.B'Visibility options for the bottom axis.C"Rules to generate the left y axis.D%Visibility options for the left axis.E#Rules to generate the right y axis.F&Visibility options for the right axis.GThe data sets to plot in the chart. The are ploted over each other. The either type associates the plot with the left or right y axis.HHow to style the legend.IThe margin distance to use.J*If the grid shall be rendered beneath (False ) or over (True ) all plots.KA Layout value is a single plot area, with single x and y axis. The title is at the top and the legend at the bottom. It's parametrized by the types of values to be plotted on the x and y axes.M)How to fill the background of everything.NUHow to fill the background of the plot, if different from the overall background.O!Title to display above the chart.P Font style to use for the title.QRules to generate the x axis.R$Visibility options for the top axis.S'Visibility options for the bottom axis.TRules to generate the y axis.U%Visibility options for the left axis.V&Visibility options for the right axis.WFThe data sets to plot in the chart. The are ploted over each other.XHow to style the legend.YThe margin distance to use.Z*If the grid shall be rendered beneath (False ) or over (True ) all plots.[2Information on what is at a specifc location of a K or :. This is delivered by the  of a {.\A legend entry.] The title.^The title of the top x axis._The title of the bottom x axis.`The title of the left y axis.aThe title of the right y axis.b,The plot area at the given plot coordinates.c,The top x axis at the given plot coordinate.d/The bottom x axis at the given plot coordinate.e-The left y axis at the given plot coordinate.f.The right y axis at the given plot coordinate.gType of axis that is used in K and :."To generate the actual axis type (# and  ) the l< function is called and custom settings are applied with m. Note that the + values in K and :6 override visibility related settings of the axis.i%Font style to use for the axis title.jTitle displayed for the axis.kAxis style applied.l^Function that generates the axis data, based upon the points plotted. The default value is 3.mWFunction that can be used to override the generated axis data. The default value is .nCTrue if left to right (bottom to top) is to show descending values.oA MAxisFn_ is a function that generates an (optional) axis given the points plotted against that axis.pRender the given K. Extract all s from the plots of a K.Render the given s for a K.Render the plot area of a KV. This consists of the actual plot area with all plots, the axis and their titles.rRender the given :. Extract all s from the plots of a ::. Left and right plot legend items are still separated.Render the given s for a :.tRender several layouts with the same x-axis type and range, vertically stacked so that their origins and x-values are aligned.gThe legends from all the charts may be optionally combined, and shown once on the bottom chart. See 3 for further information.@Render the grids of the given axis to a plot area of given size.4Swap the contents of the pair depending on the flag.`Render a single set of plot data onto a plot area of given size using the given x and y axis.DConstruct a axis for the given edge using the attributes from a g the given values.=Override the visibility of a selected axis with the selected +.vEmpty K without title and plots. The background is white and the grid is drawn beneath all plots. There will be a legend. The top and right axis will not be visible.xEmpty : without title and plots. The background is white and the grid is drawn beneath all plots. There will be a legend. The top axis will not be visible.{A empty 7 with compressions applied.&Setter to update all axis styles on a K0Setter to update all the axes title styles on a K*Setter to update all the font styles on a KBSetter to update the foreground color of core chart elements on a K&Setter to update all axis styles on a :0Setter to update all the axes title styles on a :*Setter to update all the font styles on a :BSetter to update the foreground color of core chart elements on a :o3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst}~oKLMNOPQRSTUVWXYZ:;<=>?@ABCDEFGHIJghijklmn[\]^_`abcdef3456789opqrst}~3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \]^_`abcdefghijklmn None;=` @The state held when monadically constructing a graphical element.An infinite source of colors, for use in plots.An infinite source of shapes, for use in plots3We use nested State monads to give nice syntax. The outer state is the graphical element being constructed (typically a layout). The inner state contains any additional state reqired. This approach means that lenses and the state monad lens operators can be used directly on the value being constructed.Run the monadic K computation, and return the graphical element (ie the outer monad' state)QNest the construction of a graphical element within the construction of another.Lift a a computation over Add a plot to the K being constructed.(Add a plot against the left axis to the : being constructed.*Add a plot against the right axis tof the : being constructed.,Pop and return the next color from the state,Pop and return the next shape from the state  %(c) Tim Docker 2006-2013BSD-style (see chart/COPYRIGHT)None  !"#$%&'()*+,-./0123456789:;<=>?@ABCDENOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&()*+,-.123456789:;<=>?@ABCDIJKLMNOPQRSTUVWXYZ[\]^_`defghijklopqrstuvwxyz{|~}      !"#$%&'()*+,-./0123456789:;<=>?@ABCFGHIJKLMNOPQRSUVWXYZ[\]^_`abcwxyz{      !"#$%&'(*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst}~!(c) Tim Docker 2014BSD-style (see chart/COPYRIGHT)None;=V<Set the contents of the colour source, for subsequent plots;Set the contents of the shape source, for subsequent plotsTConstuct a line plot with the given title and data, using the next available color.hConstruct a scatter plot with the given title and data, using the next available color and point shape.ZConstruct a bar chart with the given titles and data, using the next available colors       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDENOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&()*+,-.123456789:;<=>?@ABCDIJKLMNOPQRSTUVWXYZ[\]^_`defghijklopqrstuvwxyz{|~}      !"#$%&'()*+,-./0123456789:;<=>?@ABCFGHIJKLMNOPQRSUVWXYZ[\]^_`abcwxyz{      !"#$%&'(*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst}~&&'()*+,-./0123456789:;;<=>?@AABCDDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoppqrstuvwwxyz{|}~      !"#$%&&'()*+,-.//0123456789:;<==>?@AB C C D E F G H I J K L L M N O P Q R R S T U U V W X Y Z [ \ ] ^ _ ` a b c c d e f g h i j j k l m n o p q r s t u v w x y z { | } ~                                                 !"##$%%&'()**+,-./01123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoZ[\]^pqefgrosstuvwxyz{|}~5       !"##$%&&'(()*+,-./01234567889:;<=>?@ABCDEFGHIJKLMNOPQRSSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~              !!!!!         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      ! " # $ % & ' ( ) * + , - . / 01121345464748494:4;4<4=4>4?4@4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4V4W4S4X4Q4YZ[Z\Z]Z^Z_Z`ZaZaZbZcdedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddd      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|{}{~{{{{{{{{{{{{{{{{{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF[F\F]F^F_F`FaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzF{F|F}F~FFFFFFFFFFF Chart-1.9-5thPouHrelq88G4pxjUy31!Graphics.Rendering.Chart.Geometry&Graphics.Rendering.Chart.Backend.Types%Graphics.Rendering.Chart.Backend.Impl Graphics.Rendering.Chart.Drawing#Graphics.Rendering.Chart.Plot.Types$Graphics.Rendering.Chart.Plot.Points#Graphics.Rendering.Chart.Plot.Lines$Graphics.Rendering.Chart.Plot.Hidden)Graphics.Rendering.Chart.Plot.FillBetween%Graphics.Rendering.Chart.Plot.ErrBars$Graphics.Rendering.Chart.Plot.CandleGraphics.Rendering.Chart.Utils#Graphics.Rendering.Chart.Renderable"Graphics.Rendering.Chart.SparkLine(Graphics.Rendering.Chart.Plot.AnnotationGraphics.Rendering.Chart.Grid!Graphics.Rendering.Chart.Plot.PieGraphics.Rendering.Chart.Legend#Graphics.Rendering.Chart.Axis.Types"Graphics.Rendering.Chart.Axis.Unit"Graphics.Rendering.Chart.Axis.Time'Graphics.Rendering.Chart.Axis.LocalTime%Graphics.Rendering.Chart.Axis.Indexed&Graphics.Rendering.Chart.Axis.Floating!Graphics.Rendering.Chart.Axis.Int%Graphics.Rendering.Chart.Plot.Vectors"Graphics.Rendering.Chart.Plot.Bars'Graphics.Rendering.Chart.Plot.AreaSpotsNumeric.Histogram'Graphics.Rendering.Chart.Plot.HistogramGraphics.Rendering.Chart.LayoutGraphics.Rendering.Chart.StateGraphics.Rendering.Chart.Easy Graphics.Rendering.Chart.BackendGraphics.Rendering.Chart.AxisGraphics.Rendering.Chart.PlotGraphics.Rendering.ChartMatrixxxyxxyyyx0y0PathMoveToLineToArcArcNegEndCloseRectSizeRangeRectEdgeE_TopE_BottomE_LeftE_RightRect PointMapFnLimitLMinLValueLMaxVectorv_xv_yPointp_xp_y pointToVecvanglevlenvscalepvaddpvsubpsubmkrectwithin intersectRectrectPathmoveTomoveTo'lineTolineTo'arcarc'arcNegarcNeg'closefoldPathmakeLinesExplicit transformProtatePscaleP translatePidentity translatescalerotatescalarMultiplyadjointinvert $fMonoidPath$fSemigroupPath $fNumMatrix $fShowPoint $fShowVector $fShowLimit $fShowRect $fShowMatrix AlignmentFnsafPointAlignFnafCoordAlignFn AlignmentFn FillStyleFillStyleSolid _fill_colorTextSize textSizeWidthtextSizeAscenttextSizeDescenttextSizeYBearingtextSizeHeight VTextAnchorVTA_Top VTA_Centre VTA_Bottom VTA_BaseLine HTextAnchorHTA_Left HTA_Centre HTA_Right FontStyle _font_name _font_size _font_slant _font_weight _font_color FontWeightFontWeightNormalFontWeightBold FontSlantFontSlantNormalFontSlantItalicFontSlantOblique LineStyle _line_width _line_color _line_dashes _line_cap _line_joinLineJoin LineJoinMiter LineJoinRound LineJoinBevelLineCap LineCapButt LineCapRound LineCapSquarebitmapAlignmentFnsvectorAlignmentFns$fDefaultLineStyle$fDefaultFontSlant$fDefaultFontWeight$fDefaultFontStyle$fDefaultFillStyle $fShowLineCap $fEqLineCap $fOrdLineCap$fShowLineJoin $fEqLineJoin $fOrdLineJoin$fShowLineStyle $fEqLineStyle$fShowFontSlant $fEqFontSlant$fOrdFontSlant$fShowFontWeight$fEqFontWeight$fOrdFontWeight$fShowFontStyle $fEqFontStyle$fShowHTextAnchor$fEqHTextAnchor$fOrdHTextAnchor$fShowVTextAnchor$fEqVTextAnchor$fOrdVTextAnchor$fShowTextSize $fEqTextSize$fShowFillStyle $fEqFillStyleline_cap line_color line_dashes line_join line_width font_color font_name font_size font_slant font_weight fill_colorBackendProgramChartBackendInstr StrokePathFillPath GetTextSizeDrawText GetAlignments WithTransform WithFontStyle WithFillStyle WithLineStyleWithClipRegion strokePathfillPathtextSizedrawText withTransform withFontStyle withFillStyle withLineStylewithClipRegiongetPointAlignFngetCoordAlignFn PointStyle _point_color_point_border_color_point_border_width _point_radius _point_shape PointShapePointShapeCirclePointShapePolygonPointShapePlusPointShapeCrossPointShapeStarPointShapeArrowHeadPointShapeEllipse withRotationwithTranslation withScale withScaleX withScaleYwithPointStylewithDefaultStyle alignPathalignStrokePath alignFillPathalignStrokePointsalignFillPointsalignStrokePointalignFillPointstrokePointPath fillPointPath drawTextA drawTextR drawTextsR textDrawRect textDimension drawPointdefaultColorSeq solidLine dashedLine filledCircles hollowCircles hollowPolygon filledPolygonplussesexesstarsarrowssolidFillStyle$fDefaultPointStylepoint_border_colorpoint_border_width point_color point_radius point_shapeToPlottoPlotPlot _plot_render _plot_legend_plot_all_pointsjoinPlotmapXY $fToPlotPlotplot_all_points plot_legend plot_render PlotPoints_plot_points_title_plot_points_style_plot_points_values$fDefaultPlotPoints$fToPlotPlotPointsplot_points_styleplot_points_titleplot_points_values PlotLines_plot_lines_title_plot_lines_style_plot_lines_values_plot_lines_limit_valuesdefaultPlotLineStyle hlinePlot vlinePlot$fDefaultPlotLines$fToPlotPlotLinesplot_lines_limit_valuesplot_lines_styleplot_lines_titleplot_lines_values PlotHidden_plot_hidden_x_values_plot_hidden_y_values$fToPlotPlotHiddenplot_hidden_x_valuesplot_hidden_y_valuesPlotFillBetween_plot_fillbetween_title_plot_fillbetween_style_plot_fillbetween_values$fDefaultPlotFillBetween$fToPlotPlotFillBetweenplot_fillbetween_styleplot_fillbetween_titleplot_fillbetween_values PlotErrBars_plot_errbars_title_plot_errbars_line_style_plot_errbars_tick_length_plot_errbars_overhang_plot_errbars_valuesErrPointep_xep_yErrValueev_lowev_bestev_high symErrPoint$fDefaultPlotErrBars$fToPlotPlotErrBars$fShowErrValue$fShowErrPointplot_errbars_line_styleplot_errbars_overhangplot_errbars_tick_lengthplot_errbars_titleplot_errbars_valuesCandlecandle_x candle_low candle_open candle_mid candle_close candle_high PlotCandle_plot_candle_title_plot_candle_line_style_plot_candle_fill_plot_candle_rise_fill_style_plot_candle_fall_fill_style_plot_candle_tick_length_plot_candle_width_plot_candle_centre_plot_candle_values$fDefaultPlotCandle$fToPlotPlotCandle $fShowCandleplot_candle_centreplot_candle_fall_fill_styleplot_candle_fillplot_candle_line_styleplot_candle_rise_fill_styleplot_candle_tick_lengthplot_candle_titleplot_candle_valuesplot_candle_width isValidNumbermaybeM Rectangle _rect_minsize_rect_fillStyle_rect_lineStyle_rect_cornerStyleRectCornerStyle RCornerSquare RCornerBevelRCornerRounded ToRenderable toRenderable RenderableminsizerenderPickFn nullPickFnemptyRenderablespacerspacer1 setPickFnmapMaybePickFn mapPickFn addMarginsfillBackgroundembedRenderablelabelrlabelrectangleToRenderable drawRectangle$fToRenderableRenderable$fToRenderableRectangle$fDefaultRectangle$fFunctorRenderablerect_cornerStylerect_fillStylerect_lineStyle rect_minsize SparkOptions so_smoothso_step so_height so_limits so_bgColor so_minColor so_maxColor so_lastColor so_minMarker so_maxMarker so_lastMarker SparkLine sl_optionssl_data smoothSparkbarSparksparkLineToRenderable sparkWidth sparkSizerenderSparkLine$fToRenderableSparkLine$fShowSparkOptionsPlotAnnotation_plot_annotation_hanchor_plot_annotation_vanchor_plot_annotation_angle_plot_annotation_style_plot_annotation_background_plot_annotation_values$fDefaultPlotAnnotation$fToPlotPlotAnnotationplot_annotation_angleplot_annotation_backgroundplot_annotation_hanchorplot_annotation_styleplot_annotation_valuesplot_annotation_vanchorGrid SpaceWeightSpanwidthheighttvaltspanemptynulltabove wideAbove aboveWide tallBeside besideTallfullOverlayUnderfullOverlayOverbesideaboveNbesideNoverlay.|../.weightsgridToRenderable$fToRenderableGrid $fFunctorGrid $fShowGridPieItem _pitem_label _pitem_offset _pitem_valuePieChart _pie_data _pie_colors_pie_label_style_pie_label_line_style_pie_start_angle PieLayout _pie_title_pie_title_style _pie_plot_pie_background _pie_marginpieChartToRenderablepieToRenderable$fDefaultPieItem$fToRenderablePieChart$fDefaultPieChart$fToRenderablePieLayout$fDefaultPieLayoutpie_background pie_marginpie_plot pie_titlepie_title_style pie_colorspie_datapie_label_line_stylepie_label_stylepie_start_angle pitem_label pitem_offset pitem_valueLegendLegendPosition LegendAbove LegendBelow LegendRight LegendLeftLegendOrientationLORowsLOCols LegendStyle_legend_label_style_legend_margin_legend_plot_size_legend_orientation_legend_positionlegendToRenderable$fDefaultLegendStyle$fToRenderableLegendlegend_label_style legend_marginlegend_orientationlegend_plot_sizelegend_positionAxisTAxisFn AxisStyle_axis_line_style_axis_label_style_axis_grid_style_axis_label_gapAxisData_axis_visibility_axis_viewport_axis_tropweiv _axis_ticks _axis_labels _axis_gridAxisVisibility_axis_show_line_axis_show_ticks_axis_show_labels PlotValuetoValue fromValueautoAxisaxisToRenderable axisGridHideaxisGridAtTicksaxisGridAtBigTicksaxisGridAtLabelsaxisLabelsOverride axisOverhangrenderAxisGridmakeAxis makeAxis'defaultAxisLineStyledefaultGridLineStylevmapinvmaplinMap invLinMap$fDefaultAxisVisibility$fDefaultAxisStyleaxis_show_labelsaxis_show_lineaxis_show_ticks axis_grid axis_labels axis_ticks axis_tropweiv axis_viewportaxis_visibilityaxis_grid_styleaxis_label_gapaxis_label_styleaxis_line_styleunitAxis $fPlotValue()TimeLabelAlignment UnderTicks BetweenTicks TimeLabelFnTimeSeq TimeValue utctimeFromTV tvFromUTCTimedoubleFromTimeValuetimeValueFromDouble timeValueAxisdaysmonthsyearsautoTimeValueAxis$fPlotValueDay$fPlotValueUTCTime$fPlotValueLocalTime$fTimeValueLocalTime$fTimeValueDay$fTimeValueUTCTime$fShowTimeLabelAlignmentdoubleFromLocalTimetimeAxis autoTimeAxis PlotIndex plotindex_i addIndexes autoIndexAxis$fPlotValuePlotIndex $fEqPlotIndex$fOrdPlotIndex$fEnumPlotIndex$fNumPlotIndex$fRealPlotIndex$fIntegralPlotIndex$fShowPlotIndex LogAxisParams _loga_labelfLinearAxisParams _la_labelf _la_nLabels _la_nTicksLogValuePercent unPercent scaledAxisautoScaledAxis autoStepsautoScaledLogAxis$fPlotValueFloat$fPlotValueDouble$fPlotValuePercent $fShowPercent$fPlotValueLogValue$fShowLogValue$fDefaultLinearAxisParams$fDefaultLogAxisParams $fEqPercent $fOrdPercent $fNumPercent $fRealPercent$fFractionalPercent$fRealFracPercent$fFloatingPercent$fRealFloatPercent $fEqLogValue $fOrdLogValue $fNumLogValue$fRealLogValue$fFractionalLogValue$fRealFracLogValue$fFloatingLogValue$fRealFloatLogValue la_labelf la_nLabels la_nTicks loga_labelfdefaultIntAxisautoScaledIntAxis scaledIntAxis$fPlotValueInteger$fPlotValueInt VectorStyle_vector_line_style_vector_head_style PlotVectors_plot_vectors_title_plot_vectors_style_plot_vectors_scale_plot_vectors_grid_plot_vectors_mapf_plot_vectors_valuesvector_head_stylevector_line_styleplot_vectors_gridplot_vectors_mapfplot_vectors_scaleplot_vectors_styleplot_vectors_titleplot_vectors_valuesplotVectorField$fDefaultPlotVectors$fDefaultVectorStylePlotBars_plot_bars_style_plot_bars_item_styles_plot_bars_titles_plot_bars_spacing_plot_bars_alignment_plot_bars_reference_plot_bars_singleton_width_plot_bars_valuesPlotBarsAlignmentBarsLeft BarsCentered BarsRightPlotBarsSpacing BarsFixWidth BarsFixGap PlotBarsStyle BarsStacked BarsClustered BarsPlotValue barsReferencebarsAddplotBars$fBarsPlotValueInt$fBarsPlotValueDouble$fDefaultPlotBars$fShowPlotBarsStyle$fShowPlotBarsSpacing$fShowPlotBarsAlignmentplot_bars_alignmentplot_bars_item_stylesplot_bars_referenceplot_bars_singleton_widthplot_bars_spacingplot_bars_styleplot_bars_titlesplot_bars_values AreaSpots4D_area_spots_4d_title_area_spots_4d_linethick_area_spots_4d_palette_area_spots_4d_opacity_area_spots_4d_max_radius_area_spots_4d_values AreaSpots_area_spots_title_area_spots_linethick_area_spots_linecolour_area_spots_fillcolour_area_spots_opacity_area_spots_max_radius_area_spots_values$fToPlotAreaSpots$fDefaultAreaSpots$fToPlotAreaSpots4D$fDefaultAreaSpots4Darea_spots_fillcolourarea_spots_linecolourarea_spots_linethickarea_spots_max_radiusarea_spots_opacityarea_spots_titlearea_spots_valuesarea_spots_4d_linethickarea_spots_4d_max_radiusarea_spots_4d_opacityarea_spots_4d_palettearea_spots_4d_titlearea_spots_4d_values binBounds histValueshistWeightedValues histWithBinsPlotHist_plot_hist_title_plot_hist_bins_plot_hist_values_plot_hist_no_zeros_plot_hist_range_plot_hist_drop_lines_plot_hist_fill_style_plot_hist_line_style_plot_hist_norm_funcdefaultPlotHistdefaultFloatPlotHistdefaultNormedPlotHist histToPlot$fDefaultPlotHistplot_hist_binsplot_hist_drop_linesplot_hist_fill_styleplot_hist_line_styleplot_hist_no_zerosplot_hist_norm_funcplot_hist_rangeplot_hist_titleplot_hist_valuesStackedLayouts_slayouts_layouts_slayouts_compress_legend StackedLayoutStackedLayoutLRLayoutLR_layoutlr_background_layoutlr_plot_background_layoutlr_title_layoutlr_title_style_layoutlr_x_axis_layoutlr_top_axis_visibility _layoutlr_bottom_axis_visibility_layoutlr_left_axis_layoutlr_left_axis_visibility_layoutlr_right_axis_layoutlr_right_axis_visibility_layoutlr_plots_layoutlr_legend_layoutlr_margin_layoutlr_grid_lastLayout_layout_background_layout_plot_background _layout_title_layout_title_style_layout_x_axis_layout_top_axis_visibility_layout_bottom_axis_visibility_layout_y_axis_layout_left_axis_visibility_layout_right_axis_visibility _layout_plots_layout_legend_layout_margin_layout_grid_last LayoutPickLayoutPick_LegendLayoutPick_TitleLayoutPick_XTopAxisTitleLayoutPick_XBottomAxisTitleLayoutPick_YLeftAxisTitleLayoutPick_YRightAxisTitleLayoutPick_PlotAreaLayoutPick_XTopAxisLayoutPick_XBottomAxisLayoutPick_YLeftAxisLayoutPick_YRightAxis LayoutAxis_laxis_title_style _laxis_title _laxis_style_laxis_generate_laxis_override_laxis_reverseMAxisFnlayoutToRenderable layoutToGridlayoutLRToRenderablelayoutLRToGridrenderStackedLayouts$fDefaultLayoutAxis$fDefaultLayout$fToRenderableLayout$fDefaultLayoutLR$fToRenderableLayoutLR$fToRenderableStackedLayouts$fDefaultStackedLayouts$fShowLayoutPicklayout_backgroundlayout_bottom_axis_visibilitylayout_grid_lastlayout_left_axis_visibility layout_legend layout_marginlayout_plot_background layout_plotslayout_right_axis_visibility layout_titlelayout_title_stylelayout_top_axis_visibility layout_x_axis layout_y_axislayoutlr_backgroundlayoutlr_bottom_axis_visibilitylayoutlr_grid_lastlayoutlr_left_axislayoutlr_left_axis_visibilitylayoutlr_legendlayoutlr_marginlayoutlr_plot_backgroundlayoutlr_plotslayoutlr_right_axislayoutlr_right_axis_visibilitylayoutlr_titlelayoutlr_title_stylelayoutlr_top_axis_visibilitylayoutlr_x_axislaxis_generatelaxis_override laxis_reverse laxis_style laxis_titlelaxis_title_styleslayouts_compress_legendslayouts_layoutslayout_axes_styleslayout_axes_title_styleslayout_all_font_styleslayout_foregroundlayoutlr_axes_styleslayoutlr_axes_title_styleslayoutlr_all_font_styleslayoutlr_foregroundCStateECcolorsshapesexecECliftEC liftCStateplotplotLeft plotRight takeColor takeShape$fDefaultCState$fToRenderableStateT setColors setShapeslinepointsbarsmakeLinesExplicit' pointwise pointwise2stepPath adjustText adjustTextX adjustTextYbase Data.MaybemaybeGHC.BaseJustValueAboveBesideOverlayEmptyNulldoubleFromUTCTimeutcTimeFromDouble doubleFromDay dayFromDoublehoursnoTimelocalTimeFromDouble time-1.8.0.2&Data.Time.LocalTime.Internal.LocalTime LocalTimeshowDs showEFloat'idgetLegendItems LegendItem renderLegendlayoutPlotAreaToGridgetLegendItemsLRrenderLegendLR renderGridsoptPairReverserenderSinglePlotmkAxisoverrideAxisVisibilityLayoutGridElements lge_plots lge_taxis lge_baxis lge_laxis lge_raxis lge_margin_colors_shapesData.Traversable Traversabletraverse*contravariant-1.4.1-GpJPi2Pr4hWGMWZ1yAirHfData.Functor.Contravariant Contravariant contramap>$Data.Bifunctor BifunctorbimapData.Functor.IdentityIdentity runIdentityData.Functor.ConstConstgetConst Data.Function&#colour-2.3.4-3NJ9PqXXphX667fld0uWZxData.Colour.Names yellowgreenyellow whitesmokewhitewheatviolet turquoisetomatothistletealtan steelblue springgreensnow slategrey slategray slateblueskybluesilversiennaseashellseagreen sandybrownsalmon saddlebrown royalblue rosybrownredpurple powderblueplumpinkperu peachpuff papayawhip palevioletred paleturquoise palegreen palegoldenrodorchid orangeredorange olivedraboliveoldlacenavy navajowhitemoccasin mistyrose mintcream midnightbluemediumvioletredmediumturquoisemediumspringgreenmediumslatebluemediumseagreen mediumpurple mediumorchid mediumbluemediumaquamarinemaroonmagentalinen limegreenlime lightyellowlightsteelbluelightslategreylightslategray lightskyblue lightseagreen lightsalmon lightpink lightgrey lightgreen lightgraylightgoldenrodyellow lightcyan lightcoral lightblue lemonchiffon lawngreen lavenderblushlavenderkhakiivoryindigo indianredhotpinkhoneydew greenyellowgreengreygray goldenrodgold ghostwhite gainsborofuchsia forestgreen floralwhite firebrick dodgerbluedimgreydimgray deepskybluedeeppink darkviolet darkturquoise darkslategrey darkslategray darkslateblue darkseagreen darksalmondarkred darkorchid darkorangedarkolivegreen darkmagenta darkkhakidarkgrey darkgreendarkgray darkgoldenroddarkcyandarkbluecyancrimsoncornsilkcornflowerbluecoral chocolate chartreuse cadetblue burlywoodbrown bluevioletblueblanchedalmondbisquebeigeazure aquamarineaqua antiquewhite alicebluereadColourNameData.Colour.Internal alphaChannelatopblend withOpacitydissolveopaquealphaColourConvert transparentblack colourConvertColour AlphaColour AffineSpace affineCombo ColourOpsdarken1data-default-class-0.1.2.0-65ekPiG1XHJGG1Sy8NeI1LData.Default.ClassDefaultdef"lens-4.16.1-DhUCjvjRnWv92AFYeDQEcrControl.Lens.THdefaultFieldRulesmakeFieldsNoPrefix makeFieldsabbreviatedNamerabbreviatedFieldsclassUnderscoreNoPrefixNamerclassUnderscoreNoPrefixFieldscamelCaseNamercamelCaseFieldsunderscoreNamerunderscoreFields makeWrappeddeclareLensesWith declareFieldsdeclareWrapped declarePrismsdeclareClassyFor declareClassydeclareLensesFor declareLensesmakeLensesWith makeClassyFor makeLensesFor makeClassy_ makeClassy makeLenses classyRules_ classyRules mappingNamerlookingupNamer lensRulesForunderscoreNoPrefixNamer lensRules lensClass lensField createClassgenerateLazyPatternsgenerateUpdateableOpticsgenerateSignatures simpleLensesControl.Lens.Internal.FieldTH LensRules FieldNamerDefNameTopName MethodName ClassyNamerControl.Lens.Internal.PrismTHmakeClassyPrisms makePrismsControl.Lens.AtiatsansixAtiix icontainsIndexContainscontainsIxValueIxedixAtatControl.Lens.EachEacheachControl.Lens.Platedgplateparts composOpFoldparaparaOf holesOnOfholesOnholes contextsOnOf contextsOn contextsOfcontextstransformMOnOf transformMOf transformMOn transformM transformOnOf transformOf transformOn transform cosmosOnOfcosmosOncosmosOfcosmos universeOnOf universeOn universeOfuniverse rewriteMOnOf rewriteMOn rewriteMOfrewriteM rewriteOnOf rewriteOn rewriteOfrewritechildrendeep...PlatedplateGPlatedControl.Lens.ZoomZoomed MagnifiedZoomzoomMagnifymagnifyControl.Lens.Wrappedalafala _Unwrapping _Wrapping _Unwrapping' _Wrapping'op _Unwrapped_Wrapped _Unwrapped' _GWrapped'Wrapped Unwrapped _Wrapped' Rewrapped RewrappingControl.Lens.Consunsnocsnoc|>_last_init_tail_headunconscons<|:<:>Cons_ConsSnoc_SnocControl.Lens.EmptyAsEmpty_EmptyControl.Lens.Isocoerced secondingfirsting bimappingrmappinglmapping dimapping contramappingimagmamagma involutedreversedlazyflipped uncurriedcurriedanonnon'nonmappingenumunderaufaucloneIsowithIsofromisoStrictLazySwappedReversedListAnIsoAnIso'swappedstrictControl.Lens.EqualitysimplesimplyfromEqmapEqsubstEqrunEq Identical AnEquality AnEquality'Control.Lens.Indexed itraverseByOf itraverseBy ifoldMapByOf ifoldMapBy imapAccumL imapAccumRiforMimapMiforitoListifoldlMifoldrMifind iconcatMapiforM_imapM_ifor_ itraverse_noneinoneiallianyindexindicesicompose<.> reindexed selfIndex.><.FunctorWithIndeximapimappedFoldableWithIndexifoldMapifoldedifoldrifoldlifoldr'ifoldl'TraversableWithIndex itraverse itraversedControl.Lens.Reified ReifiedLensLensrunLens ReifiedLens'ReifiedIndexedLens IndexedLensrunIndexedLensReifiedIndexedLens'ReifiedIndexedTraversalIndexedTraversalrunIndexedTraversalReifiedIndexedTraversal'ReifiedTraversal Traversal runTraversalReifiedTraversal' ReifiedGetterGetter runGetterReifiedIndexedGetter IndexedGetterrunIndexedGetter ReifiedFoldFoldrunFoldReifiedIndexedFold IndexedFoldrunIndexedFold ReifiedSetterSetter runSetterReifiedSetter'ReifiedIndexedSetter IndexedSetterrunIndexedSetterReifiedIndexedSetter' ReifiedIsoIsorunIso ReifiedIso' ReifiedPrismPrismrunPrism ReifiedPrism'Control.Lens.LevelilevelslevelsControl.Lens.Traversal sequenceByOf traverseByOf confusingdeepOffailing ifailoverfailoverelements elementsOfelement elementOfignored traversed64 traversed1 traversed imapAccumLOf imapAccumROfiforMOfimapMOfiforOf itraverseOfcloneIndexedTraversal1cloneIndexPreservingTraversal1cloneTraversal1cloneIndexedTraversalcloneIndexPreservingTraversalcloneTraversaldroppingtakingboth1bothholesOfunsafeSingularsingulariunsafePartsOf'unsafePartsOf'iunsafePartsOf unsafePartsOf ipartsOf'partsOf'ipartsOfpartsOfilocilociscanl1Ofscanr1Of mapAccumLOf mapAccumROf transposeOf sequenceOfforMOfmapMOf sequenceAOfforOf traverseOf ATraversal ATraversal' ATraversal1 ATraversal1'AnIndexedTraversalAnIndexedTraversal1AnIndexedTraversal'AnIndexedTraversal1' Traversing Traversing1 Traversing' Traversing1' TraverseMin traverseMin TraverseMax traverseMaxControl.Lens.Fold foldMapByOffoldByOfidroppingWhile itakingWhile ifiltered findIndicesOf findIndexOf elemIndicesOf elemIndexOf^@?!^@?^@.. itoListOf ifoldlMOf ifoldrMOf ifoldlOf' ifoldrOf'ifindMOfifindOf iconcatMapOfiforMOf_imapMOf_iforOf_ itraverseOf_inoneOfiallOfianyOfifoldlOfifoldrOf ifoldMapOf backwardsipreusespreusesipreusepreuse ipreviewspreviewsipreviewpreviewipreprehasn'thasfoldlMOffoldrMOf foldl1Of' foldr1Of'foldlOf'foldrOf'foldl1Offoldr1OflookupOffindMOffindOf minimumByOf maximumByOf minimum1Of minimumOf maximum1Of maximumOf notNullOfnullOflast1OflastOffirst1OffirstOf^?!^?lengthOfconcatOf concatMapOf notElemOfelemOfmsumOfasumOf sequenceOf_forMOf_mapMOf_ sequence1Of_for1Of_ traverse1Of_ sequenceAOf_forOf_ traverseOf_sumOf productOfnoneOfallOfanyOforOfandOf^.. toNonEmptyOftoListOffoldlOffoldrOffoldOf foldMapOflinedworded droppingWhile takingWhilefilterediteratedunfoldedcycled replicatedrepeatedfolded64folded ifoldringfoldringifoldingfoldingControl.Lens.Prism_Shownearlyonly_Void_Nothing_Just_Right_Leftmatchingisn'tbelowasidewithoutoutsideprism'prism clonePrism withPrismAPrismAPrism'Control.Lens.Reviewreusesreusereviews#reviewreununtoControl.Lens.Gettergetting^@.iusesiuseiviewsiview ilistenings listenings ilistening listeningusesuse^.viewsviewilikelikeitotoGettingIndexedGetting AccessingControl.Lens.Tuple_19'_18'_17'_16'_15'_14'_13'_12'_11'_10'_9'_8'_7'_6'_5'_4'_3'_2'_1'Field1_1Field2_2Field3_3Field4_4Field5_5Field6_6Field7_7Field8_8Field9_9Field10_10Field11_11Field12_12Field13_13Field14_14Field15_15Field16_16Field17_17Field18_18Field19_19Control.Lens.Lensfusinguniteddevoid<#=<#~#%%=<#%=<#%~#%=#=#%%~#%~#~storing^#<<%@=<%@=%%@=%%@~<<%@~<%@~overA<<>=<<>~<<~<<<>=<<&&=<<||=<<**=<<^^=<<^=<~<<&&~<<||~<<**~<<^^~<<^~<%%=%%~&~ilensiplenslensALensALens' AnIndexedLensAnIndexedLens'Control.Lens.SetterimapOfmapOfassignA.@= imodifying%@=.@~%@~isetsisetiover icensoring censoringipassingpassingscribe<>=<>~