F'=      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                            j Data type for a font. %Abstract data type for a fill style. 2The contained Cairo action sets the required fill ' style in the Cairo rendering state. #Data type for the style of a line. 5Abstract data type for the style of a plotted point. 8The contained Cairo action draws a point in the desired . style, at the supplied device coordinates. ;The reader monad containing context information to control  the rendering process. .The environment present in the CRender Monad. !2An adjustment applied immediately prior to points * being displayed in device coordinates. 8When 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. "6A adjustment applied immediately prior to coordinates  being transformed. #$%&'(&A rectangle is defined by two points. )*#A function mapping between points. +,-./0123A point in two dimensions. 4567Scale a vector by a constant. 8Add a point and a vector. 9 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. =>?@ABCDEMake a path from a rectangle. F)Draw lines between the specified points. The points will be  corrected$ by the cenv_point_alignfn, so that A when drawing bitmaps, 1 pixel wide lines will be centred on the  pixels. G(Fill the region with the given corners. The points will be  corrected$ by the cenv_coord_alignfn, so that A when drawing bitmaps, the edges of the region will fall between  pixels. HIJKL9Return the bounding rectangle for a text string rendered  in the current context. M@Function to draw a textual label anchored by one of its corners  or edges. N@Function to 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. O<Execute a rendering action in a saved context (ie bracketed " between C.save and C.restore). PRadius of circle. Colour. QRadius of circle. Thickness of line. RRadius of circle. Thickness of line. Number of vertices. Is right-side-up? SRadius of circle. Number of vertices. Is right-side-up? TRadius of circle. Thickness of line. URadius of circle. Thickness of line. VRadius of circle. Thickness of line. WWidth of line. XWidth of line. (The dash pattern in device coordinates. YZ[\]^_`abcdefgh  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh()3456/012 ;89:7<#'&%$+.-,*OD@CEFG\]?KWXIZYJ [HSRPQTUVMNL !"=>AB^_`abcdefgh    !" !"#'&%$$%&'())*+.-,,-./0120123456456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg(hCA type class abtracting the conversion of a value to a Renderable. ij;A Renderable is a record of functions required to layout a  graphic element. kl,A Cairo action to calculate a minimum size. m2A Cairo action for drawing it within a rectangle. 8 The rectangle is from the origin to the given point. The resulting pick1 function maps a point in the image to a value. nBA function that maps a point in device coordinates to some value. 0Perhaps it might be generalised from Maybe a to ( (MonadPlus m ) => m a in the future. opq9Create a blank renderable with a specified minimum size. r:Create a blank renderable with a minimum size the same as  some other renderable. s8Replace the pick function of a renderable with another. t*Map a function over result of a renderable's pickfunction. u/Add some spacing at the edges of a renderable. The spacing to be added. The source renderable. v3Overlay a renderable over a solid background fill. w?Output the given renderable to a PNG file of the specifed size ' (in pixels), to the specified file. x?Output the given renderable to a PDF file of the specifed size ' (in points), to the specified file. yFOutput the given renderable to a postscript file of the specifed size ' (in points), to the specified file. z@Output the given renderable to an SVG file of the specifed size ' (in points), to the specified file. {|}<Helper function for using a renderable, when we generate it  in the CRender monad. ~BConstruct a renderable from a text string, aligned with the axes. JConstruct a renderable from a text string, rotated wrt to axes. The angle  of rotation is in degrees. "Accessor for field rect_minsize_. $Accessor for field rect_fillStyle_. $Accessor for field rect_lineStyle_. &Accessor for field rect_cornerStyle_. hijklmnopqrstuvwxyz{|}~jklmhinwxyz|{vup}~qrstohiijklmklmnopqrstuvwxyz{|}~Z2Type for capturing values plotted by index number : (ie position in a list) rather than a numerical value. How to display a time >TimeSeq is a (potentially infinite) set of times. When passed G a reference time, the function returns a a pair of lists. The first A contains all times in the set less than the reference time in F decreasing order. The second contains all times in the set greater = than or equal to the reference time, in increasing order. +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. 7Collect the information we need to render an axis. The 3 bool is true if the axis direction is reversed. <A function to generate the axis data, given the data values  to be plotted against it. /Control values for how an axis gets displayed. 2How far the labels are to be drawn from the axis. AThe basic data associated with an axis showing values of type x. AThe axis_viewport_ function maps values into device coordinates. %The tick marks on the axis as pairs. 1 The first element is the position on the axis 5 (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. 2The labels on an axis as pairs. The first element 7 is the position on the axis (in viewport units) and ( the second is the label text string. 4The positions on the axis (in viewport units) where  we want to show grid lines. 7Calculate the amount by which the labels extend beyond  the ends of the axis. =Given a target number of values, and a list of input points, H 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. &Generate a linear axis automatically. M The supplied axis is used as a template, with the viewport, ticks, labels I and grid set appropriately for the data displayed against that axies. J The resulting axis will only show a grid if the template has some grid  values. #Generate a log axis automatically. M The supplied axis is used as a template, with the viewport, ticks, labels H and grid set appropriately for the data displayed against that axis. J The resulting axis will only show a grid if the template has some grid  values. ,Map a LocalTime value to a plot coordinate. &Map a plot coordinate to a LocalTime.  Create an  to for a time axis. The first  sets the H minor ticks, and the ultimate range will be aligned to its elements.  The second  sets the labels and grid. The  is C used to format LocalTimes for labels. The values to be plotted ) against this axis can be created with . A  for seconds. A  for minutes. A  for hours. A  for calendar days. A  for calendar months. A  for calendar years. EAutomatically choose a suitable time axis, based upon the time range G of data. The values to be plotted against this axis can be created  with . 3Create an axis for values indexed by position. The . list of strings are the labels to be used. :Augment a list of values with index numbers for plotting. 4A linear mapping of points in one range to another. 4A linear mapping of points in one range to another. DDD2Value for describing a series of text annotations > to be placed at arbitrary points on the graph. Annotations B can be rotated and styled. Rotation angle is given in degrees, 3 rotation is performend around the anchor point. 9Value defining some hidden x and y values. The values don't 1 get displayed, but still affect axis scaling. ,Value 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. /This 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. The title of each element of [y]%. These will be shown in the legend. 3This value controls how the widths of the bars are B calculated. Either the widths of the bars, or the gaps between  them can be fixed. <This value controls how bars for a fixed x are aligned with 8 respect to the device coordinate corresponding to x. /The starting level for the chart (normally 0). !The actual points to be plotted. How bars for a given (x,[y]%) are aligned with respect to screen , coordinate corresponding to x (deviceX). !Bars are centered around deviceX %The right edge of bars is at deviceX $The left edge of bars is at deviceX .(BarsFixGap g mw) means make the gaps between 5 the bars equal to g, but with a minimum bar width  of mw (All bars have the same width in pixels. (Bars for a fixed x are put horizontally  beside each other. *Bars for a fixed x are stacked vertically  on top of each other. ;Value defining a series of error intervals, and a style in  which to render them. FValue for holding a point with associated error bounds for each axis. ?Value specifying a plot filling the area between two sets of Y , coordinates, given common X coordinates. 6Value defining a series of datapoints, and a style in  which to render them. 8Value defining a series of (possibly disjointed) lines, ( and a style in which to render them.   >A type class abstracting the conversion of a value to a Plot.   ,Interface to control plotting on a 2D area.  =Given 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. <All of the model space coordinates to be plotted. These are / used to autoscale the axes where necessary. 8Join any two plots together (they will share a legend).    2Helper function to plot a single horizontal line. 0Helper function to plot a single vertical line.   EWhen the error is symmetric, we can simply pass in dx for the error.  !"#$%&'()*+,-./0123456789:;t      !"#$%&'()*+,-./0123456789:;t      !"#$%&'()*+,-./0123456789:;s          !"#$%&'()*+,-./0123456789:;<=A collection of unconnected spots, with x,y position, and an B independent z value to be represented by the area of the spot. =>?@ABthe largest size of spot CDEFGHIJ<=>?@ABCDEFGHIJ<=>?@ABCDEFGHIJ<=>?@ABC=>?@ABCDEFGHIJ(K'Abstract datatype representing a grid.  An empty 0x0 grid cell. !An empty 1x1 grid cell. "Two grids positioned one over  the other. #One grid horizontally beside  the other. $One grid above the other. Size is % their cached total size (so it is  NOT specified manually). %A singleton grid item a spanning ' a given rectangle (measured in grid $ cells), with given space weight. &'HWhen more space is available for an item than the total width of items, ( extra added space is proportional to ' space weight'. (LMNO4A 1x1 grid from a given value, with no extra space. PLA WxH (measured in cells) grid from a given value, with space weight (1,1). QA 1x1 empty grid. RA 0x0 empty grid. ST=A value placed above the grid, occupying 1 row with the same  horizontal span as the grid. U=A value placed below the grid, occupying 1 row with the same  horizontal span as the grid. V@A value placed to the left of the grid, occupying 1 column with ' the same vertical span as the grid. WAA value placed to the right of the grid, occupying 1 column with ' the same vertical span as the grid. X=A value placed under a grid, with the same span as the grid. Y<A value placed over a grid, with the same span as the grid. Z[\]LOne grid over the other. The first argument is shallow, the second is deep. ^A synonym for Z. _A synonym for S. `BSets the space weight of *every* cell of the grid to given value. )*+,-aKLMNOPQRSTUVWXYZ[\]^_`aKLOPQR^_S[Z\]MNa`TUVWXYKLMNOPQRSTUVWXYZ[\]^_`abcd8Legends can be constructed in two orientations: in rows : (where we specify the maximum number of columns), and in 7 columns (where we specify the maximum number of rows) efghijklm./nopqrbcdefghijklmnopqrbcghijkldfenmopqrbccdfeefghijklhijklmnopqrMsEncapsulates a ut with a fixed abscissa type but  arbitrary ordinate type. 0123456789:;<t>A Layout1 value is a single plot area, with optional: axes on B each of the 4 sides; title at the top; legend at the bottom. It's G parameterised by the types of values to be plotted on the horizonal  and vertical axes. uvwxyz{|}~$Function to map points from the left/ right plot  to the left/!right axes. The default value is =. 8True if the grid is to be rendered on top of the Plots. <Function that determines whether an axis should be visible, A based upon the points plotted on this axis. The default value  is  'not.null'. 6Function that generates the axis data, based upon the ( points plotted. The default value is . ?Function that can be used to override the generated axis data.  The default value is =. DTrue if left to right (bottom to top) is to show descending values. A MAxisFn1 is a function that generates an (optional) axis / given the points plotted against that axis. IRender several layouts with the same abscissa type stacked so that their I origins and axis titles are aligned horizontally with respect to each H other. The exterior margins and background are taken from the first  element. >?@ABCDEFG>Helper to update all axis styles on a Layout1 simultaneously. :Helper to set the forground color uniformly on a Layout1. 6stuvwxyz{|}~6tuvwxyz{|}~s6stuvwxyz{|}~uvwxyz{|}~ ####   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJbcdefghijklmnopqrstuvwxyz{|}~ HIJ&Display a renderable in a gtk window. ANote that this is a convenience function that initialises GTK on  it'0s first call, but not subsequent calls. Hence it's : unlikely to be compatible with other code using gtk. In ' that case use createRenderableWindow. K1Create a new GTK window displaying a renderable. L 7MNOPQRSTUVWXYZ[\]^_`abcd5Type to define a few simple properties of each plot. efghijkEThe main plotting function. The idea behind PlotType is shamelessly K copied from Text.Printf (and is not exported). All you need to know is J that your arguments need to be in class PlotArg. And PlotArg consists  of functions and [Double]% and String and PlotKind or [PlotKind]. Display a plot on the screen. Save a plot as a PDF file. "Save a plot as a postscript file. Save a plot as a png file. l  !"#$%%&'(()*+,-./0012345667899:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoopqrstuvwxyz{|}~      !"#$%&'()*+,-.//0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTUVWXXYZ[\]^_`abcddefghijklmnopqrrstuvwxyz{|}~                                                                 c !"#$%&'()*+,-./012 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 UV Chart-0.13.1Graphics.Rendering.Chart.Types#Graphics.Rendering.Chart.RenderableGraphics.Rendering.Chart.AxisGraphics.Rendering.Chart.Plot"Graphics.Rendering.Chart.AreaSpotsGraphics.Rendering.Chart.GridGraphics.Rendering.Chart.LegendGraphics.Rendering.Chart.LayoutGraphics.Rendering.Chart.PieGraphics.Rendering.Chart.GtkGraphics.Rendering.Chart.SimpleGraphics.Rendering.Chart VTextAnchor VTA_BaseLine VTA_Bottom VTA_CentreVTA_Top HTextAnchor HTA_Right HTA_CentreHTA_LeftRectSizeRangeCairoFontStyle font_name_ font_size_ font_slant_ font_weight_ font_color_CairoFillStyleCairoLineStyle line_width_ line_color_ line_dashes_ line_cap_ line_join_CairoPointStyleCRenderDRCEnvcenv_point_alignfncenv_coord_alignfnRectEdgeE_RightE_LeftE_BottomE_TopRect PointMapFnLimitLMaxLValueLMinVectorv_xv_yPointp_xp_yvscalepvaddpvsubpsubmkrectwithin runCRendercdefaultColorSeqmoveToalignpalignclineTo setClipRegionrectPath strokePathfillPath setFontStyle setLineStyle setFillStylesetSourceColortextSizedrawText drawTextRpreserveCState filledCircles hollowCircles hollowPolygon filledPolygonplussesexesstars solidLine dashedLinesolidFillStyledefaultPointStyledefaultFontStyle isValidNumbermaybeM line_width line_color line_dashesline_cap line_join font_name font_size font_slant font_weight font_color ToRenderable toRenderable RenderableminsizerenderPickFn nullPickFnemptyRenderablespacerspacer1 setPickFn mapPickFn addMarginsfillBackgroundrenderableToPNGFilerenderableToPDFFilerenderableToPSFilerenderableToSVGFile bitmapEnv vectorEnvembedRenderablelabelrlabel rect_minsizerect_fillStylerect_lineStylerect_cornerStyle PlotIndex plotindex_iLogValue PlotValuetoValueautoAxis LogAxisParams loga_labelf_LinearAxisParams la_labelf_ la_nLabels_ la_nTicks_AxisTAxisFn AxisStyleaxis_line_style_axis_label_style_axis_grid_style_axis_label_gap_AxisDataaxis_viewport_ axis_ticks_ axis_labels_ axis_grid_axisToRenderable axisGridHideaxisGridAtTicksaxisGridAtLabels axisTicksHideaxisLabelsHide axisOverhangrenderAxisGrid autoStepsdefaultLinearAxisdefaultIntAxisautoScaledAxisautoScaledLogAxisdefaultLogAxisdefaultAxisLineStyledefaultAxisStyletimeAxisdaysmonthsyears autoTimeAxisunitAxis autoIndexAxis addIndexesvmap axis_viewport axis_ticks axis_labels axis_gridaxis_line_styleaxis_label_styleaxis_grid_styleaxis_label_gap la_labelf la_nLabels la_nTicks loga_labelfPlotAnnotationplot_annotation_hanchor_plot_annotation_vanchor_plot_annotation_angle_plot_annotation_style_plot_annotation_values_ PlotHiddenplot_hidden_x_values_plot_hidden_y_values_PlotBarsplot_bars_style_plot_bars_item_styles_plot_bars_titles_plot_bars_spacing_plot_bars_alignment_plot_bars_reference_plot_bars_singleton_width_plot_bars_values_PlotBarsAlignment BarsRight BarsCenteredBarsLeftPlotBarsSpacing BarsFixGap BarsFixWidth PlotBarsStyle BarsClustered BarsStacked BarsPlotValue barsReferencebarsAdd PlotErrBarsplot_errbars_title_plot_errbars_line_style_plot_errbars_tick_length_plot_errbars_overhang_plot_errbars_values_ErrPointep_xep_yErrValueev_lowev_bestev_highPlotFillBetweenplot_fillbetween_title_plot_fillbetween_style_plot_fillbetween_values_ PlotPointsplot_points_title_plot_points_style_plot_points_values_ PlotLinesplot_lines_title_plot_lines_style_plot_lines_values_plot_lines_limit_values_ToPlottoPlotPlot plot_render_ plot_legend_plot_all_points_joinPlotdefaultPlotLineStyledefaultPlotLines hlinePlot vlinePlotdefaultPlotPointsdefaultPlotFillBetween symErrPointdefaultPlotErrBarsdefaultPlotBarsplotBarsdefaultPlotAnnotation plot_render plot_legendplot_all_pointsplot_lines_titleplot_lines_styleplot_lines_valuesplot_lines_limit_valuesplot_points_titleplot_points_styleplot_points_valuesplot_fillbetween_titleplot_fillbetween_styleplot_fillbetween_valuesplot_errbars_titleplot_errbars_line_styleplot_errbars_tick_lengthplot_errbars_overhangplot_errbars_valuesplot_bars_styleplot_bars_item_stylesplot_bars_titlesplot_bars_spacingplot_bars_alignmentplot_bars_referenceplot_bars_singleton_widthplot_bars_valuesplot_annotation_hanchorplot_annotation_vanchorplot_annotation_angleplot_annotation_styleplot_annotation_values AreaSpotsarea_spots_title_area_spots_linethick_area_spots_linecolour_area_spots_fillcolour_area_spots_max_radius_area_spots_values_defaultAreaSpotsarea_spots_titlearea_spots_linethickarea_spots_linecolourarea_spots_fillcolourarea_spots_max_radiusarea_spots_valuesGridSpanwidthheighttvaltspanemptynulltabove fullRowAbove fullRowBelow fullColLeft fullColRightfullOverlayUnderfullOverlayOverbesideaboveNbesideNoverlay.|../.weightsgridToRenderableLegendLegendOrientationLOColsLORows LegendStylelegend_label_style_legend_margin_legend_plot_size_legend_orientation_legendToRenderabledefaultLegendStylelegend_label_style legend_marginlegend_plot_sizelegend_orientation AnyLayout1Layout1layout1_background_layout1_plot_background_layout1_title_layout1_title_style_layout1_bottom_axis_layout1_top_axis_layout1_left_axis_layout1_right_axis_layout1_yaxes_control_layout1_margin_layout1_plots_layout1_legend_layout1_grid_last_ LayoutAxislaxis_title_style_ laxis_title_ laxis_style_laxis_visible_laxis_generate_laxis_override_laxis_reverse_MAxisFnwithAnyOrdinaterenderLayout1sStackeddefaultLayout1defaultLayoutAxislayout1_backgroundlayout1_plot_background layout1_titlelayout1_title_stylelayout1_bottom_axislayout1_top_axislayout1_left_axislayout1_right_axislayout1_yaxes_controllayout1_margin layout1_plotslayout1_legendlayout1_grid_lastlaxis_title_style laxis_title laxis_style laxis_visiblelaxis_generatelaxis_override laxis_reverseupdateAllAxesStylessetLayout1ForegroundlinkAxesindependentAxesPieItem pitem_label_ pitem_offset_ pitem_value_PieChart 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_margin_defaultPieChartdefaultPieItemdefaultPieLayout pie_titlepie_title_stylepie_plotpie_background pie_marginpie_data pie_colorspie_label_stylepie_label_line_stylepie_start_angle pitem_label pitem_offset pitem_valuerenderableToWindow Layout1DDD plotLayoutPlotKindSolidDottedDashed LittleDotSymbolsStarExPlusDiamondSquare DownTriangleTriangle HollowCircle FilledCircleNameplot plotWindowplotPDFplotPSplotPNGxcoordsstepPath colourChannel Rectangle rect_minsize_rect_fillStyle_rect_lineStyle_rect_cornerStyle_RectCornerStyleRCornerRounded RCornerBevel RCornerSquare transformdefaultRectangle TimeLabelFnTimeSeq minsizeAxis renderAxis axisMappingstepsIntsteps chooseStepmakeAxis makeAxis'autoScaledIntAxislog10logTicksdefaultGridLineStyledoubleFromLocalTimelocalTimeFromDoublenormalizeTimeOfDayaddTodsecondsminuteshourslinMapmapXYrenderPlotLinesrenderPlotLegendLinesrenderPlotPointsrenderPlotLegendPointsrenderPlotFillBetweenrenderPlotLegendFillplotAllPointsFillBetweenrenderPlotErrBarsrenderPlotLegendErrBarsrenderPlotBarswhenJust allBarPointsstackrenderPlotLegendBarsrenderAnnotationplot_hidden_x_valuesplot_hidden_y_valuesrenderAreaSpotsrenderSpotLegendDArrayFlatElFlatGridNullEmptyOverlayBesideAboveValueCell SpaceWeightSizemapGridMflattenflatten2foldTgetSizesgroupsjoin_nub backgroundtitleRenderable plotAreaGridlegendRenderablemargin Layout1Pick L1P_RightAxis L1P_LeftAxis L1P_TopAxisL1P_BottomAxis L1P_PlotArea L1P_LegendbaseGHC.BaseidaddMarginsToGridlayout1ToRenderable layout1ToGridlayout1TitleToRenderablelayout1LegendsToRenderablelayout1PlotAreaToGridplotsToRenderable renderPlotsgetAxesallPlottedValuesanyKey guiInitVar initGuiOncecreateRenderableWindow updateCanvasIsPlottoUPlot'PlotArgtoUPlotUPlotXUKind UFunctionUDoublesUString PlotPNGTypeplp PlotPSTypepls PlotPDFTypepldPlotWindowTypeplwPlotTypepl InternalPlotIPXIPY styleColor styleSymboliplotnamestr2k str2khelperuplot