VL    dennis@felsin9.deNone OSimple representation of objects on the heap, so they can be arranged linearly "The state of a printing operation *Internal state of the list view generator A box and its identifier Identifier of a closure .The global state used for the visualizations. ;Current position of the mouse, updated with every movement 0What kind of visualization is currently running !How much the window is zoomed in Current position in the zoom Whether the mouse is dragging 'Whether the mouse was actually dragged Visualization views $All functions a view has to provide 3Signals that are sent to the GUI to signal changes Export the view to a file Change position in history Switch to alternative view Reset all hidden boxes Remove all Boxes Redraw !Update the view "Add a new Box to be visualized #.A function to draw a cairo drawing to a file. $A simple Point . %&'() *+,-./012345678 !"#$9- %&'() *+,-./012345678 !"#$ )('&% *+,-./021345678"! #$9dennis@felsin9.deNone(Parse a closure to a list of VisObjects ITextual representation of Heap objects, used in the graph visualization. :Make infix names prefix ;4Determine whether a name is an infix name, based on  http:www.haskell.org onlinereport haskell2010/haskellch2.html <=>?@AB:;C <=>?@AB:;Cdennis@felsin9.deNone D+Communication channel to the visualization E-Whether a visualization is currently running F$Internal state of the visualization GAll the visualized boxes H Hidden boxes I-All heap graphs since the last clear command J&Get the currently selected heap graph K Whether we'Cre currently looking at an older heap graph or the most recent one L+Evaluate an object identified by a String. M?Walk the heap for a list of objects to be visualized and their  corresponding names. N?Walk the heap for a list of objects to be visualized and their 2 corresponding names. Also return the resulting HeapMap and another  HeapMap% that does not contain BCO pointers. OIIn the given HeapMap, list all indices that are used more than once. The 5 second parameter adds external references, commonly [heapGraphRoot]. DEFGHIJKLMNPOQR DEFGHIJKLMNDEFGHIJKLMNPOQRdennis@felsin9.deNoneS?Draw visualization to screen, called on every update or when it's ' requested from outside the program. T(Export the visualization to an SVG file U2Handle a mouse click. If an object was clicked an ! is sent H that causes the object to be evaluated and the screen to be updated. VHandle a mouse move. Causes an ! if the mouse is hovering a G different object now, so the object gets highlighted and the screen  updated. W;Something might have changed on the heap, update the view. 'XYZ[\]^_`abcdefghijklSTmnUVWopqrstuvwxySTUVW"XYZ[\]^_`abcdefghijklSTmnUVWopqrstuvwxydennis@felsin9.deNonezSA generic algorithm to restrict a graph to the subgraph reachable by certain nodes { Converts a | to a fgl }, taking into account special  representations for BCOs. ~7Take the objects to be visualized and run them through dot and extract L the drawing operations that have to be exectued to show the graph of the  heap map. z{~~ z{~ Safe-Inferred  dennis@felsin9.deNone?Draw visualization to screen, called on every update or when it's ' requested from outside the program. (Export the visualization to an SVG file 2Handle a mouse click. If an object was clicked an ! is sent H that causes the object to be evaluated and the screen to be updated. Handle a mouse move. Causes an ! if the mouse is hovering a G different object now, so the object gets highlighted and the screen  updated. ;Something might have changed on the heap, update the view. dennis@felsin9.deNone This is the main function. It'(s to be called from GHCi and launches a % graphical window in a new thread. HA minimalistic version of ghc-vis, without window decorations, help and  all that other stuff. 9Add expressions with a name to the visualization window. IEvaluate an object that is shown in the visualization. (Names start with t) 0Switch between the list view and the graph view DWhen an object is updated by accessing it, you have to call this to N refresh the visualization window. You can also click on an object to force  an update. BClear the visualization window, removing all expressions from it. Reset the hidden boxes Change position in history GExport the current visualization view to a file, format depends on the 7 file ending. Currently supported: svg, png, pdf, ps            !"#$%&'()*+,-./012345678!9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW9:;<XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~`9:;<\Z[^kl ghc-vis-0.7GHC.Vis.InternalGHC.Vis GHC.Vis.TypesGHC.Vis.View.CommonGHC.Vis.View.ListGHC.Vis.View.Graph.Parser Paths_ghc_visGHC.Vis.View.Graph parseClosureshowClosureFieldsvismvisviewevalswitchupdateclearrestorehistoryexport VisObject PrintStatePStateNamedBox IdentifierStatemousePos zoomRatiopositiondragging wasDraggedViewTypeViewSignal ExportSignal HistorySignal SwitchSignal RestoreSignal ClearSignal RedrawSignal UpdateSignal NewSignal DrawFunctionPointFunctionThunkLinkNamedUnnamed tCounter' fCounter' xCounter'bindings heapGraph GraphViewListViewredrawclickmove updateObjects exportView$fShowVisObjectinfixFixisInfix correctObjectsetNamegetName insertObjects parseInternal contParsembParens$fEqBox visSignal visRunningvisStatevisBoxes visHiddenvisHeapHistory getHeapGraph inHistoryModeevaluate parseBoxesparseBoxesHeapboundMultipleTimesgeneralParseBoxessimplifyprintAllRGBobjectsboundshover totalSize Rectanglestatelayout'fontNamefontSize colorNamecolorNameHighlighted colorLinkcolorLinkHighlighted colorThunkcolorThunkHighlighted colorFunctioncolorFunctionHighlightedpaddingdrawrender drawEntrydrawBox pangoLayoutpangoEmptyLayoutdrawFunctionLinksetColorfillAndSurround roundedRectheightwidth simpleWidthreachableSubgraph convertGraphghc-heap-view-0.5.0.1 GHC.HeapView HeapGraph fgl-5.4.2.4Data.Graph.Inductive.TreeGr xDotParse graphFontSize nodeFontSize edgeFontSizegraphvizCommand removeOldgetBoxes defaultViscatchIOversionbindirlibdirdatadir libexecdir getBinDir getLibDir getDataDir getLibexecDirgetDataFileNameboxes operationshoverIconBounds iconHoverIcon CollapseIcon EvaluateIconhoverIconWidthhoverIconHeighthoverIconSpaceiconEvaluateSVGiconCollapseSVGhoverEvaluateSVGhoverCollapseSVG drawHoverMenu evaluateClick collapseClick evaluate2hideviewstitlebackgroundColor defaultSize zoomIncrementpositionIncrementbigPositionIncrement signalTimeoutexport'putmVisMainThreadsetupGUIquitreact runCorrect zoomImage visMainThreadfileSave newFilterrenderSVGScaled