xd      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc$(c) 2013 diagrams team (see LICENSE)BSD-style (see LICENSE)!diagrams-discuss@googlegroups.comNoneB(+Abstraction of the drawing surface details.EType of the monad that tracks the state from side-effecting commands.PType for a monad that writes Postscript using the commands we will define later."CHandles opening and closing the file associated with the passed - and renders the commands built up in the  argument.#*Renders multiple pages given as a list of , actions to the file associated with the  argument.$8Builds a surface and performs an action on that surface.%Clip with the current path.&Start a new path.'Close the current path.(9Draw an arc given a center, radius, start, and end angle.)Move the current point.*Add a line to the current path from the current point to the given point. The current point is also moved with this command.+Add a cubic Bzier curve segment to the current path from the current point. The current point is also moved with this command.,BAdd a line segment to the current path using relative coordinates.-jAdd a cubic Bzier curve segment to the current path from the current point using relative coordinates..Stroke the current path.0;Fill the current path without affecting the graphics state.1#Draw a string at the current point.2BDraw a string by first measuring the width then offseting by half.3?Draw a string uniformally scaling to fit within a bounding box.4ODraw a string with offset factors from center relative to the width and height.52Apply a transform matrix to the current transform.6<Push the current state of the renderer onto the state stack.75Replace the current state by popping the state stack.8 Push the current graphics state.9Pop the current graphics state.:;Push the current transform matrix onto the execution stack.;ZSet the current transform matrix to be the matrix found by popping the execution stack.</Set the color of the stroke. Ignore gradients.=-Set the color of the fill. Ignore gradients.>Set the color of the stroke.?Set the color of the fill.@Set the line width.ASet the line cap style.BSet the line join method.CSet the miter limit.DSet the dash style.E'Translate the current transform matrix.F#Scale the current transform matrix.G$Rotate the current transform matrix.qdefghij klmnopqrstuvwxyz{| !}~"#$%&'(x-coordinate of center.y-coordiante of center.raidus.start angle in radians.end angle in radians.)*+,-./0123456789:;<=>?@ABCD%Dash pattern (even indices are "on").Offset.EFGG  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGG! "#$&)*+,-('./056789:;EFG<>=?@ABCD1243%   Odefghij   klmnopqrstuvwxyz{| !}~"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG((c) 2014 diagrams-lib team (see LICENSE)BSD-style (see LICENSE)!diagrams-discuss@googlegroups.comNone+:BMHjThe color with which shapes are filled. Note that child colors always override parent colors; that is, R c1 . R c2 $ d is equivalent to M c2 $ dT. More precisely, the semigroup structure on fill color attributes is that of .IsThe color with which lines (strokes) are drawn. Note that child colors always override parent colors; that is, M c1 . M c2 $ d is equivalent to M c2 $ dT. More precisely, the semigroup structure on line color attributes is that of .MSet the line (stroke) color.NApply a M attribute.OA synonym for M.RSet the fill color.SKSet a "recommended" fill color, to be used only if no explicit calls to  fillColor (or fc, or fcA ) are used.UA synonym for RHIJKLMNOPQRSTUHIJKLMNOPQRSTUIJKLMNOHTPQSRUHIJKLMNOPQRSTU$(c) 2013 Diagrams team (see LICENSE)BSD-style (see LICENSE)!diagrams-discuss@googlegroups.comNone  !"+02346=KVPostscript only supports EPS style output at the moment. Future formats would each have their own associated properties that affect the output.WEncapsulated Postscript output.YUThis data declaration is simply used as a token to distinguish this rendering engine.'the name of the file you want generated the requested size of the output(the output format and associated optionsXHandle "miscellaneous" style attributes (clip, font stuff, fill color and fill rule).!VWXYZ[\]^VWXYZ[\]^ YZX[\]VW^VWXYZ[\]^$(c) 2013 Diagrams team (see LICENSE)BSD-style (see LICENSE)!diagrams-discuss@googlegroups.comNone24=K`SThis is the simplest way to render diagrams, and is intended to be used like so: G... other definitions ... myDiagram = ... main = defaultMain myDiagramCompiling a source file like the above example will result in an executable which takes command-line options for setting the size, output file, and so on, and renders  myDiagram with the specified options.Pass --help` to the generated executable to see all available options. Currently it looks something like a./Program Usage: ./Program [-w|--width WIDTH] [-h|--height HEIGHT] [-o|--output OUTPUT] Command-line diagram generation. Available options: -?,--help Show this help text -w,--width WIDTH Desired WIDTH of the output image -h,--height HEIGHT Desired HEIGHT of the output image -o,--output OUTPUT OUTPUT file !For example, a common scenario is $ ghc --make MyDiagram # output image.eps with a width of 400pt (and auto-determined height) $ ./MyDiagram -o image.eps -w 400 a multiMain is like `, except instead of a single diagram it takes a list of diagrams paired with names as input. The generated executable then takes a  --selection option specifying the name of the diagram that should be rendered. The list of available diagrams may also be printed by passing the option --list.Example usage: $ ghc --make MultiTest [1 of 1] Compiling Main ( MultiTest.hs, MultiTest.o ) Linking MultiTest ... $ ./MultiTest --list Available diagrams: foo bar $ ./MultiTest --selection bar -o Bar.eps -w 200 b pagesMain is like `, except instead of a single diagram it takes a list of diagrams and each will be rendered as a page in the Postscript file.Example usage: $ ghc --make MultiPage [1 of 1] Compiling Main ( MultiPage.hs, MultiPage.o ) Linking MultiPage ... $ ./MultiPage -o Pages.ps -w 200 canimMain is like `@, but renders an animation instead of a diagram. It takes as input an animation and produces a command-line program which will crudely "render" the animation by rendering one image for each frame, named by extending the given output file name by consecutive integers. For example if the given output file name is  foo/blah.eps, the frames will be saved in foo/blah001.eps, foo/blah002.eps, and so on (the number of padding digits used depends on the total number of frames). It is up to the user to take these images and stitch them together into an actual animation format (using, e.g. ffmpeg).Of course, this is a rather crude method of rendering animations; more sophisticated methods will likely be added in the future.The --fpuh option can be used to control how many frames will be output for each second (unit time) of animation. `abcXY_`abc_`abcYX `abc      !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUCVWXYZ[\\]^_`abcdefghhijklmnopqrstuvw!xyz{|"}~LMdiagrams-postscript-1.1Diagrams.Backend.PostscriptGraphics.Rendering.Postscript Diagrams.Backend.Postscript.CMYK#Diagrams.Backend.Postscript.CmdLinediagrams-core-1.2.0.1Diagrams.Core.TypesOptionsCMYK_cyan_magenta_yellow_blacK FontWeightFontWeightBoldFontWeightNormal FontSlantFontSlantObliqueFontSlantItalicFontSlantNormalblacKcyanmagentayellowfaceisLocalsizeslantweight RenderStatefillRulefont ignoreFillSurfaceRenderPSWriter runPSWriter drawState renderWithrenderPagesWithwithEPSSurfaceclipnewPath closePatharcmoveTolineTocurveTo relLineTo relCurveTostrokefill fillPreserveshowTextshowTextCentered showTextInBox showTextAlign transformsaverestoregsavegrestore saveMatrix restoreMatrix strokeColor fillColorstrokeColorCMYK fillColorCMYK lineWidthlineCaplineJoin miterLimitsetDash translatescalerotate FillColorCMYK LineColorCMYKgetLineColorCMYKmkLineColorCMYKstyleLineColorCMYK lineColorCMYKlineColorCMYKAlcCMYKmkFillColorCMYKstyleFillColorCMYKrecommendFillColorCMYKgetFillColorCMYKfcCMYK OutputFormatEPSB Postscript psfileName psSizeSpecpsOutputFormat renderDiasdiagrams-lib-1.2.0.1Diagrams.Backend.CmdLinemainWith defaultMain multiMain pagesMainanimMainPostscriptFont_face_slant_weight_size_isLocal DrawStateDS _fillRule_font _ignoreFill defaultFontRS _drawState_savedemptyDSheaderfooter_width_heightfileName runRendersavedemptyRSdoRenderrenderPSmkPSCall mkPSCall'matrixPScolorPS colorCMYK showArray fromLineCap fromLineJoinstringPS epsHeader epsFooter renderFont fontFromNamesemigroups-0.14Data.SemigroupLast$fDefaultFillColorCMYK$fAttributeClassFillColorCMYK$fDefaultLineColorCMYK$fAttributeClassLineColorCMYK _psfileName _psSizeSpec_psOutputFormatpostscriptMiscStyleCPostscriptOptionsrunCtoRender sizeFromSpecrenderC fromFontSlantfromFontWeightpostscriptStylepostscriptTransf$fRenderableTextPostscript$fRenderablePathPostscript$fRenderableTrailPostscript$fRenderableSegmentPostscript$fHashableOptionsTFCo:R:RenderPostscriptR2TFCo:R:OptionsPostscriptR2$fBackendPostscriptR2$fMonoidRender$fHashableOutputFormat chooseRender renderDias' renderDia'$fMainableActive $fMainable[] $fMainable[]0$fMainableQDiagram