úÎ1×,«[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZNone"#K*W%2Describes component-specific information inside a  library dependenciesexecutable dependencies"path-name of artifact if available'Component name inside a build-plan unitA similiar type exists in Cabal codebase, see 0Distribution.Simple.LocalBuildInfo.ComponentName 8Represents a build-plan unit uniquely identified by its 'Unit ID uniquely identifying a   in install plan=Package name and version (not necessarily unique within plan)"Describes type of build item, see 0SHA256 source tarball checksum (as used by e.g. hackage-security)Components identified by 'When cabal3 needs to fall back to legacy-mode (currently for custom build-types or obsolete  cabal-version values), $ may contain more than one element.'cabal flag settings (not available for )/Describes kind of build unit and its provenance*Lives in global (non-nix-style) package dbLives in Nix-store cache Local packageLocal in-place package0Represents the information contained in cabal's  plan.json file.kThis comprises basic information describing the environment as well as the install/build plan computed by cabal. Version of cabal frontendVersion of Cabal library$Name and version of Haskell compilerArchitecture nameOperating system name install/build plan! SHA-256 hashAs an invariant, the wrapped [ is exactly 32 bytes long.#Equivalent to Cabal's &Distribution.Package.PackageIdentifier%Equivalent to Cabal's  Distribution.Package.PackageName'Equivalent to Cabal's Distribution.Package.UnitId)Equivalent to Cabal's Distribution.Package.Version+ Pretty print ,WLocates the project root for cabal project in scope for the current working directory. plan.jsonW is located from either the optional build dir argument, or in the default directory ( dist-newstyle) relative to the project root.>The folder assumed to be the project-root is returned as well.Throws \ exceptions on errors.-Decodes  plan.json file location provided as ]UThis is a trivial convenience function so that the caller doesn't have to depend on aeson directlyThrows \ exceptions on errors.. Pretty print )/ Pretty print #0 Pretty print ! as base-161Extract directed ' dependency graph edges from  CThis graph contains both, library and executable dependencies edges2Extract '. root nodes from dependency graph computed by 1,Optional build dir to look in.3  !"#$%&'()*+,-./0123  +)*.%&#$/'(!"012,-    !"#$%&'()*^        !!""##$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^)cabal-plan-0.2.0.0-87VtEAUIom5G2D9GRvBebd Cabal.PlanCompInfo ciLibDeps ciExeDeps ciBinFileCompName CompNameLibCompNameSubLib CompNameExe CompNameTest CompNameBench CompNameSetupUnituIduPIduTypeuSha256uCompsuFlagsUnitTypeUnitTypeBuiltinUnitTypeGlobal UnitTypeLocalUnitTypeInplacePlanJsonpjCabalVersionpjCabalLibVersion pjCompilerIdpjArchpjOspjUnitsSha256PkgIdPkgNameUnitIdVer dispCompNamefindAndDecodePlanJsondecodePlanJsondispVer dispPkgId dispSha256planJsonIdGraphplanJsonIdRoots $fToJSONVer $fFromJSONVer $fToJSONPkgId$fFromJSONPkgId $fShowSha256$fToJSONSha256$fFromJSONSha256$fToJSONKeyCompName$fFromJSONKeyCompName$fToJSONCompName$fFromJSONCompName$fFromJSONCompInfo$fFromJSONUnit$fFromJSONPlanJson $fShowVer$fEqVer$fOrdVer $fShowUnitId $fEqUnitId $fOrdUnitId$fFromJSONUnitId$fToJSONUnitId $fShowPkgName $fEqPkgName $fOrdPkgName$fFromJSONPkgName$fToJSONPkgName $fShowPkgId $fEqPkgId $fOrdPkgId $fEqSha256 $fOrdSha256$fShowUnitType $fEqUnitType$fShowCompName $fEqCompName $fOrdCompName$fShowCompInfo $fShowUnit$fShowPlanJsonbytestring-0.10.8.2Data.ByteString.Internal ByteStringghc-prim GHC.TypesIObaseGHC.IOFilePath