E8      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~. 5  From SMRep  From SMRep  From SMRep $This is currently always True since  i'(m not sure how to get at the CPP define  "" (or equiv) to tell. 5Given a data constructor in the heap, find its Name. D The info tables for data constructors have a field which records D the source name of the constructor as a Ptr Word8 (UTF-8 encoded  string). The format is: Package:Module.Name ,We use this string to lookup the interpreter'&s internal representation of the name  using the lookupOrig.     L !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefL !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefLdefcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! LHcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef#ghijklmnopqrstuvwxyz{|}~&ghijklmnopqrstuvwxyz{|}~(}~rtsuvwxyz{|xyz{|mnopqghijkl#ghijklhijklmnopqnopqrtsuvwxyz{|xyz{|stuvwxyz{|}~~ To assist in " rendering"  the graph to some source.  An example Draw Build a map to  (preds,succs) ,Needed since i don't know of a way  to go  a -> HValue directly (unsafeCoercing  directly doesn't work (i tried)). Suck up a. %Returns nodes as it encounters them. Stop after a given depth. Doesn't really work like you'd want it to.  Working on this, but there's a slight chance that getting # it to work as one would expect isn't possible given the ' ever-so small hook that GHC gives us ( unpackClosure#). < (Just so that the possibility of impossibility is stated). Turn  undefined) into the the exception value it throws. This is in part borrowed from RtClosureInspect.getClosureData. -Walk the reachable heap (sub)graph rooted at a,  and collect it as a graph of HNodes in H' s state. Turn the root into an HValue to start off.  Add this HValue to the graph, then  add it' s successor's not already seen, and  return the HNodeId's of these newly-seen nodes  (which we've added to the graph in H' s state). . CURRENTLY GHC COERCES UNPOINTED CLOSURES TO  HVALUE', which means that if we enter (==force/eval)  such a closure we'll crash. Also, there' s no way  to know if the closure we're about to enter is  such a closure. >mnopqrstuvwxyz{|}~C}~mnopqrtsuvwxyz{|xyz{|       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnnopqrsstuvwxyz{|}~ vacuum-0.0.95GHC.Vacuum.Pretty.DotGHC.Vacuum.InternalGHC.Vacuum.ClosureTypeGHC.Vacuum.TypesGHC.Vacuum.UtilGHC.Vacuum.Pretty GHC.Vacuum.Q GHC.Vacuum graphToDotgStyleppGraphppEdgeItblCodeSunS StgInfoTableptrsnptrstipesrtlencodeHalfWordHValue wORD_SIZEhALF_WORD_SIZEghciTablesNextToCodegetgetssetiomodifyrunSdataConInfoPtrToNames ClosureType WHITEHOLECATCH_STM_FRAMECATCH_RETRY_FRAMEATOMICALLY_FRAME TREC_HEADER TREC_CHUNKTVARATOMIC_INVARIANTINVARIANT_CHECK_QUEUETVAR_WATCH_QUEUE REMOTE_REFRBH FETCH_ME_BQFETCH_ME BLOCKED_FETCHTSO STABLE_NAMEWEAK MUT_VAR_DIRTY MUT_VAR_CLEANMUT_ARR_PTRS_FROZENMUT_ARR_PTRS_FROZEN0MUT_ARR_PTRS_DIRTYMUT_ARR_PTRS_CLEAN ARR_WORDS MVAR_DIRTY MVAR_CLEANSE_CAF_BLACKHOLE SE_BLACKHOLE BLACKHOLE CAF_BLACKHOLE STOP_FRAME CATCH_FRAME UPDATE_FRAMERET_FUNRET_DYNRET_BIG RET_SMALLRET_BCO IND_STATICIND_OLDGEN_PERMIND_PERM IND_OLDGENINDAP_STACKPAPAPBCOTHUNK_SELECTOR THUNK_STATIC THUNK_0_2 THUNK_1_1 THUNK_2_0 THUNK_0_1 THUNK_1_0THUNK FUN_STATICFUN_0_2FUN_1_1FUN_2_0FUN_0_1FUN_1_0FUNCONSTR_NOCAF_STATIC CONSTR_STATIC CONSTR_0_2 CONSTR_1_1 CONSTR_2_0 CONSTR_0_1 CONSTR_1_0CONSTRINVALID_OBJECTisFunisThunkisConEnvuniqseenhvalsgraphClosureclosPtrsclosLitsclosITabInfoTab OtherInfoConInfoitabPkgitabModitabConitabPtrsitabLitsitabType itabSrtLenitabCodeHNodenodePtrsnodeLitsnodeInfoHNodeId emptyHNodenodePkgnodeModnodeNameitabNamesummaryemptyEnvhash dumpArrayGunGDrawmkVmkEsuccs ShowHNode showHNode externHNode toAdjPair toAdjList nameGraph showHNodesppDot renderDotdraw printDrawsplitQRefref!.=!=isEmptyQnewQputQtakeQtryTakeQdrainQ getQContents takeWhileQvacuum vacuumStream vacuumDebugvacuumTo vacuumLazydumpdumpTodumpLazy getInfoPtr getClosure closureType getInfoTab peekInfoTabdQTextPtrIOStgWordWordOffByteOfffieldSzadvance sizeOfPointeestoreloadevalSexecSitblCodeLength mkJumpToAddrbyte0byte1byte2byte3byte4byte5byte6byte7stdInfoTableSizeWstdInfoTableSizeBstdSrtBitmapOffsetstdClosureTypeOffset stdPtrsOffsetstdNonPtrsOffsetb2sgetConDescAddressparsefst3snd3trd3mapfstmapsnd***TailunRef emptyTail isEmptyTailBoxH dumpStream dumpDebugdefinedgrab getClosure_hasNameexecHrunHrunH_debugHstreamHfromJustisJustdumpHdumpToH dumpStreamH dumpLazyHrootHnodeH nodeStreamH nodeLazyHavoid criminalsgetHValinsertGnewIdgetId getIdLazy