úÎNH     Safe  ! !  !T(c) The University of Glasgow 2005 Copyright (C) 2016 Daniel GröberBSD3$unknown, ask the GHC guys I guess ;)portableSafeGHC library way, see Ahttps://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/CompilerWays$GHC Wiki/Commentary/Rts/CompilerWays "#$% "#$%"#$%!Copyright (C) 2016 Daniel GröberGPLv3+ experimental_tested on Linux, might work on OSX, will support Win32 in the future if possibleNone&]The name of a symbol as it occurs in a compiled Haskell object file. Must be constructed by '6. The precise format varies across GHC versions, see  nameToCLabel in compilerghciByteCodeLink.hs.$An unqualified name of a binder eg. main"A regular Haskell module name eg. System.Loader.RTS Everything in  # plus fully resolved library paths. DInformation about a library extracted from a package database stack. OIdentify a binder (aka. a "symbol" at the object file level) within a package. 1Encodes the ways a package can be looked up in a (ŠIdentify a package by just its name, if multiple packages match the latest version is picked but which unit id is picked is undefined.…Identify a package by its name and version. If multiple packages are found with varying unit ids which one is picked is undefined.YFully qualified package only one package matching can be present in a package database. $lookupLibraryInfo pkg_index pkg_qualxGets all the information required for loading a library from a package database out of the corresponding package index  pkg_index+. The desired package is identified using pkg_qualh which allows doing the lookup by name, name+version or the unique "unit id" associated with a package.The  pkg_indexZ must at the very least contain the packages "base", "rts" and the package identified by pkg_qualB. The packages "base" and "rts" are required because of GHC bug  -https://ghc.haskell.org/trac/ghc/ticket/10352#103522 thus this restriction might disappear eventually.2The required package index can be obtained using ' verbosity comp pkg_db_stack prog_conf resolveLibraryInfo comp ways liFind libraries mentioned in li on the filesystem.comp0 identifies the compiler (version, ABI etc.) andways° allows looking for the different library versions, i.e. "plain", "profiled", "threaded" and combinations thereof (note that order is significant"). Usually you'll just want [WayDyn]! though even this is implied so []# would suffice for a plain library.See  Ahttps://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/CompilerWays$GHC-Wiki/Commentary/Rts/CompilerWays. loaderInvocation sym args rli"Construct the commandline for the  rts-loader program whichloads the library described by rli, executes sym3 as its "main" function (i.e. it should be of type IO ()) and"passes the command line arguments args via the environment. Path to the " rts-loader4" executable distributed along with this library, "$libexec/rts-loader$". If set the environment variable rts_loader_libexecdir is used instead of Cabal's "$libexec3" variable which was set during installation time.).Just the compiler flavor and version parts of **=Print the library ABI string for GHC, returns something like  ghc7.10.3‹ depending on the version. This is the postfix appended to shared library names eg. "libHSzenc-0.1.1-5nxwDFCcrv6wKRoUdekV7-ghc7.10.3.so".+findLibrary dirs comp_abi lib.Search for Haskell library lib in dirs+ while taking into account the compiler id comp_abi (see *P) as well as relevant platform conventions namely library prefix and extension. lib? must be given without a "lib" prefix and without an extension.,&Library prefix and extension based on -, eg. on Linux  ("lib", "so")' ?mkSymbol pkg_key (SymbolIdentifier module_name occ_name) suffixConstructs a well formed & whenpkg_key/ is a valid package key as can be found in the key field of a package database .conf file, module_name( is a valid Haskell module name (modid),occ_name0 is a valid Haskell variable identifier (varid),suffix is at least one of ["con_info", "closure"]­ (other valid options can be found scattered across the GHC source code. The most interesting option is "closure" as this is what the entry points to functions are called.&. / 0 12)Command line arguments to pass to hs_main)*+,'34U56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW(XYZ[\]^_`abcdefghijklmnopqrs   &. / 0  12)*+,'34t      !"#$%&'()*+,-./0123456+789:-;<-;=-;>-;?-;@-;A-;A-;B-;B-;C-;D-;E-;F-;G-;H-;I-;J-;K-;L-;M-;N-;O-;P-;Q-;Q-;R-;S-;T-;U-;V-;W-.X-.Y-.Z-.[-.\-.]-.^-._-.`-.a-.b-.c-.d-.e-.f-.g-.h-.i-.j-.k-.l-.m-.n-.o-.p-.q-.r-.s-.t-.u-.v-.wx6Fd0iXHsKcXGkOBnHQBuwZSystem.Loader.RTSPaths_rts_loaderGHC.WayDistribution.Simple.ConfiguregetInstalledPackagesWay WayCustom WayThreadedWayDebugWayProf WayEventLogWayDynOccName ModuleNameResolvedLibraryInfo LibraryInfoSymbolIdentifierPackageQualifierPQNamePQIdPQUnitIdlookupLibraryInforesolveLibraryInfoloaderInvocationloaderExecutablePathcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameallowed_way_combination mkBuildTagwayTag wayRTSOnlySymbolmkSymbol9cqenToozvF42hEJ2KpXRi Distribution.Simple.PackageIndex PackageIndexshowGHCCompilerIdshowGHCCompilerIdWithAbi findLibrarylibraryPathStuffbase System.Infoos sortByVersionlookupPackageQualifiermainPackageKeyprefixUnderscoreDistribution.CompilercompilerInfoLanguagescompilerInfoIdcompilerInfoExtensionscompilerInfoCompatcompilerInfoAbiTag CompilerInfo CompilerIdYHCUHC OtherCompilerNHCLHCJHCHugsHelium HaskellSuiteHBCGHCJSGHCCompilerFlavorNoAbiTagAbiTagunknownCompilerInfoparseCompilerFlavorCompatdefaultCompilerFlavorbuildCompilerIdbuildCompilerFlavor abiTagString UnambiguousNone Ambiguous SearchResultInstalledPackageIndextopologicalOrdersearchByNameSubstring searchByNamereverseTopologicalOrderreverseDependencyClosuremoduleNameIndexmerge lookupUnitIdlookupSourcePackageIdlookupPackageNamelookupPackageIdlookupInstalledPackageIdlookupDependencyinsertfromListdependencyInconsistenciesdependencyGraphdependencyCyclesdependencyClosure deleteUnitIddeleteSourcePackageIddeletePackageNamedeleteInstalledPackageIdbrokenPackagesallPackagesBySourcePackageIdallPackagesByName allPackages