úÎ!üø  (c) Naoto Shimazaki 2017-2020MIT (see the file LICENSE)https://github.com/nshimaza experimentalSafesthread-hierarchy3Mutable map containing thread ID and finish marker.thread-hierarchy{FinishMarker is created as empty MVar when a thread is created. It is automatically filled by () when the thread exits.thread-hierarchyCreate a new empty .thread-hierarchy-Create a new thread and register it to given .thread-hierarchy$Kill all thread registered in given ƒ. This version is exposed as API. This is not called from cleanup routine. Thus it doesn't ignore asynchronous exceptions.thread-hierarchy$Kill all thread registered in given x. This internal version is only called from cleanup routine so this ignores ThreadKilled asynchronous exception.thread-hierarchyÎThread clean up routine automatically installed by newChild. It first killThreadHierarchy all its child threads and unregister itself. This function is not an API function but for internal use only.thread-hierarchy8ThreadMap where newly created thread will be registered.thread-hierarchy&Action executed within the new thread.thread-hierarchy,newChild returns ThreadId of created thread.thread-hierarchy)ThreadMap containing threads to be killedthread-hierarchy)ThreadMap containing threads to be killed  (c) Naoto Shimazaki 2017-2020MIT (see the file LICENSE)https://github.com/nshimaza experimentalSafemSafeÓ      /thread-hierarchy-0.3.0.2-Ecc3fCRbxACF86jB9KITbY$Control.Concurrent.HierarchyInternalControl.Concurrent.HierarchyPaths_thread_hierarchy ThreadMap FinishMarker newThreadMapnewChildkillThreadHierarchykillThreadHierarchyInternalcleanup$fEqFinishMarkerversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName