úÎ9å     None1345IKLNThe 1 class defines how data types are observed. For . data types, this can be derived. For example: - data MyType = MyConstr Int String deriving  instance  MyType Zrun some code and return the CDS structure (for when you want to write your own debugger). print a value, with debugging print a string, with debugging<The main entry point; run some IO code, and debug inside it.$An example of using this debugger is >runO (print [ observe "+1" (+1) x | x <- observe "xs" [1..3]]) g[2,3,4] -- +1 { 1 -> 2 } -- +1 { 2 -> 3 } -- +1 { 3 -> 4 } -- xs 1 : 2 : 3 : []Which says, the return is [2,3,4] , there were 33 calls to +1 (showing arguments and results), and xs, which was the list 1 : 2 : 3 : [].$ observes data structures in flight.An example of use is 4 map (+1) . observe "intermeduate" . map (+2) DIn this example, we observe the value that flows from the producer map (+2) to the consumer map (+1).8 can also observe functions as well a structural values.{ !"#$%&'()*+,-. /0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{    b !"#$%&'()*+,-. /0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ |      !"##$%&''()**+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}hood_FNhvp8LrR2C0CcDjJf9szJDebug.Hood.ObserveCDSCDSNamedCDSConsCDSFun CDSEnteredObserverO Observing Observableobserver observersdebugOprintOputStrOrunO observeBase observeOpaquethunk<<observesendbase GHC.GenericsGenericOutputOutLabelOutDataCDSSetChangeObserveConsEnterFunEventportIdparentchangeParent observeParent observePort ObserverMrunMO GObservable gdmobservergdmObserveChildrengdmShallowShow ourCatchAllIO handleExcgthunk gdmobserver_gsendEnterPacketdefaultObserversdefaultFnObservers observer_rootunsafeWithUniqgenerateContextsendEnterPacketevaluatesendObserveFnPacketstartEventStreamendEventStream sendEventevents badEventssendSeminitUniqgetUniqpeepUniquniquniqSemopenObserveGlobalcloseObserveGlobal eventsToCDSrender renderSet renderSet'renderFnfindFnfindFn' renderTops renderToprmEntry rmEntrySet simplifyCDSsimplifyCDSSet spotStringparensp commonOutput cdssToOutput cdsToOutputnilgrp$fMonadObserverM$fApplicativeObserverM$fFunctorObserverM$fGObservableK1$fGObservable:*:$fGObservable:+:$fGObservableU1$fGObservableM1$fGObservableM10$fGObservableM11$fObservableDynamic$fObservableSomeException$fObservable(->)$fObservableIO$fObservableArray$fObservableEither$fObservableMaybe$fObservable[]$fObservable(,,,,)$fObservable(,,,)$fObservable(,,)$fObservable(,)$fObservable()$fObservableChar$fObservableDouble$fObservableFloat$fObservableInteger$fObservableBool$fObservableInt