IAb   (c) Dennis Felsing3-Clause BSD-styledennis@felsin9.deNoneHM NSimple representation of objects on the heap, so they can be arranged linearly !The state of a printing operation )Internal state of the list view generatorA box and its identifierIdentifier of a closure-The global state used for the visualizations.:Current position of the mouse, updated with every movement/What kind of visualization is currently running How much the window is zoomed inCurrent position in the zoomWhether the mouse is dragging&Whether the mouse was actually draggedMaximum heap depth to followVisualization views#All functions a view has to provide2Signals that are sent to the GUI to signal changesExport the view to a fileChange position in historySwitch to alternative viewReset all hidden boxesRemove 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"! #$9(c) Dennis Felsing3-Clause BSD-styledennis@felsin9.deNone+;HM:'Parse a closure to a list of VisObjects;HTextual representation of Heap objects, used in the graph visualization.<Make infix names prefix=5Determine whether a name is an infix name, based on ?http://www.haskell.org/onlinereport/haskell2010/haskellch2.html :>?@ABCD;<=E:; :>?@ABCD;<=E(c) Dennis Felsing3-Clause BSD-styledennis@felsin9.deNoneM F*Communication channel to the visualizationG,Whether a visualization is currently runningH#Internal state of the visualizationIAll the visualized boxesJ Hidden boxesK,All heap graphs since the last clear commandL%Get the currently selected heap graphMMWhether we're currently looking at an older heap graph or the most recent oneN*Evaluate an object identified by a String.OVWalk the heap for a list of objects to be visualized and their corresponding names.PqWalk the heap for a list of objects to be visualized and their corresponding names. Also return the resulting HeapMap and another HeapMap$ that does not contain BCO pointers.Q~In the given HeapMap, list all indices that are used more than once. The second parameter adds external references, commonly [heapGraphRoot].FGRSHIJKLMNOPTQUV FGHIJKLMNOPFGRSHIJKLMNOPTQUV(c) Dennis Felsing3-Clause BSD-styledennis@felsin9.deNoneHMWhDraw visualization to screen, called on every update or when it's requested from outside the program.X'Export the visualization to an SVG fileY2Handle a mouse click. If an object was clicked an !P is sent that causes the object to be evaluated and the screen to be updated.ZHandle a mouse move. Causes an !n if the mouse is hovering a different object now, so the object gets highlighted and the screen updated.[:Something might have changed on the heap, update the view.'\]^_`abcdefghijklmnopWXqrYZ[stuvwxyz{|}WXYZ["\]^_`abcdefghijklmnopWXqrYZ[stuvwxyz{|} Safe-Inferred ~ ~(c) Dennis Felsing3-Clause BSD-styledennis@felsin9.deNoneHIM jThis is the main function. It's to be called from GHCi and launches a graphical window in a new thread.`A minimalistic version of ghc-vis, without window decorations, help and all that other stuff.8Add expressions with a name to the visualization window.IEvaluate an object that is shown in the visualization. (Names start with t)/Switch between the list view and the graph viewWhen an object is updated by accessing it, you have to call this to refresh the visualization window. You can also click on an object to force an update.@Clear the visualization window, removing all expressions from itReset the hidden boxesChange position in history 8Set the maximum depth for following closures on the heap }Export the current visualization view to a file, format depends on the file ending. Currently supported: svg, png, pdf, ps"   "        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY789:Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ghc-vis-0.7.2.4GHC.Vis GHC.Vis.TypesGHC.Vis.InternalGHC.Vis.View.CommonGHC.Vis.View.List Paths_ghc_visvismvisviewevalswitchupdateclearrestorehistorysetDepthexport VisObject PrintStatePStateNamedBox IdentifierStatemousePos zoomRatiopositiondragging wasDragged heapDepthViewTypeViewSignal ExportSignal HistorySignal SwitchSignal RestoreSignal ClearSignal RedrawSignal UpdateSignal NewSignal DrawFunctionPointFunctionThunkLinkNamedUnnamed tCounter' fCounter' xCounter'bindings heapGraph GraphViewListViewredrawclickmove updateObjects exportView$fShowVisObject parseClosureshowClosureFieldsinfixFixisInfix correctObjectsetNamegetName insertObjects parseInternal contParsembParens$fEqBox visSignal visRunningvisStatevisBoxes visHiddenvisHeapHistory getHeapGraph inHistoryModeevaluate parseBoxesparseBoxesHeapboundMultipleTimes defaultDepth defaultViewgeneralParseBoxessimplifyprintAllRGBobjectsboundshover totalSize Rectanglestatelayout'fontNamefontSize colorNamecolorNameHighlighted colorLinkcolorLinkHighlighted colorThunkcolorThunkHighlighted colorFunctioncolorFunctionHighlightedpaddingdrawrender drawEntrydrawBox pangoLayoutpangoEmptyLayoutdrawFunctionLinksetColorfillAndSurround roundedRectheightwidth simpleWidthcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameviewstitlebackgroundColor defaultSize zoomIncrementpositionIncrementbigPositionIncrement signalTimeoutzoommovePosexport'putmVisMainThreadsetupGUIquitreact runCorrect zoomImage visMainThreadfileSavesetDepthDialog newFilterrenderSVGScaled