h*Bg+      !"#$%&'()*0.3.0 Safe-Inferred"- hdmenu+ for  because it is shorter :>. hdmenu1Type for helping to decide how to open something.hdmenuType for an Map that describes all of the executables with their ratings.hdmenuLike 'if', but in a monadic context.hdmenu7Add a prefix to a string if it does not start with "/".This will ensure the user can specify absolute paths to files, but also conveniently use relative paths (starting from $HOME) if that is desired.hdmenu$Spawn a command and forget about it.hdmenuOpen something.,hdmenuXDG_CONFIG_HOMEhdmenuPath to the hdmenu directory. XDG_CONFIG_HOME/hdmenu, so probably ~/.config/hdmenu.hdmenuPath to the history file. ~/.config/hdmenu/histFilehdmenu!Functorial path-append operation.hdmenu2Combine two paths into a new path. Adapted from: ,https://hackage.haskell.org/package/filepathhdmenu&How (and with what) to open something.hdmenuThe thing to open. -./01230456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~+     55 Safe-Inferred"-WhdmenuHdmenu's config file.hdmenu8Command line option, NOT specifiable in the config file. hdmenu.Empty config type with all the default values. hdmenuParse the config file. hdmenu6Try to find a user config and, if it exists, parse it.    Safe-Inferred"- !hdmenuRead a history file (the file must exist) and parse it into a map."hdmenu*Parse a history file of name-number pairs.!"!" Safe-Inferred"- hdmenuHow to eval a directory. hdmenuWhen a spawned process fails, this type is used to represent the exit code and stderr output.See  https://github.com/m0rphism/haskell-dmenu/blob/master/src/DMenu/Run.hs.#hdmenuDo the appropriate things with the user selection and update the history file.$hdmenuRun dmenu with the given command line options and a list of entries from which the user should choose. Originally  https://github.com/m0rphism/haskell-dmenu/blob/master/src/DMenu/Run.hsselect.%hdmenuTry to read a file that contains a map. Return an empty map if the file doesn't exist.&hdmenu+Get all executables from all dirs in $PATH. hdmenuList all executables in the given directory. Only try listing the directory if it actually exists; this is necessary, since people may have non-existent things in their path.'hdmenuApply   to some list of file paths. hdmenuIf the given file path is a directory, try to list all of its contents; otherwise just return the file path as is. hdmenuCheck if the given file path is a directory. The given directory type dt% is assumed to be the actual one for fp.(hdmenuPretty print our items. hdmenu>Decide what to actually do with the user selection from dmenu.)hdmenuTurn a list into " and set all starting values to 0.*hdmenuSort  by its values and return the list of keys. This will make often used commands bubble up to the top.#hdmenuWhat the user picked.hdmenu/User config containing things that interest us.hdmenuMap prior to selection.$hdmenu!List of options to give to dmenu.hdmenu6List of executables from which the user should select.hdmenuThe dmenu executable.hdmenu%The selection made by the user, or a  , if the user canceled.$%#&'()*$%#&'()* Safe-Inferred"-     !"#$%&'())*+,-./0123456789:;<=>?<@A<@B>ConfigfilesopendmenuExetermttydecayhistPath getUserConfiggetHistpFile runUpdate selectWithtryReadgetExecutablesevalDirs showItemsmakeNewEntries sortByValuesbaseGHC.ShowShowS xdgConfigGHC.BaseNonEmpty:| GHC.IsListIsListItemfromListtoList fromListNStringShowshow showsPrecshowListGHC.Prim RealWorldBoolFalseTrueCharDoubleFloatIntWordOrderingLTEQGT GHC.MaybeMaybeNothingJust~ Coercible ghc-bignumGHC.Num.NaturalNaturalGHC.Num.IntegerInteger Data.StringIsString fromStringVoidMonoidmconcatmappendmempty Semigroup<>sconcatstimes Applicative*><*>pureliftA2<*Functorfmap<$Monadreturn>>>>= GHC.ClassesOrd>=compare<<=>maxminEq==/=TyConIOData.Semigroup.InternalAnygetAnyGHC.IxIxindexrangeinRange rangeSizeGHC.STSTGHC.WordWord8GHC.IO.Handle.TypesHandleGHC.ForeignPtr ForeignPtrWord64Word32Word16 GHC.Conc.SyncThreadIdData.Traversable TraversablesequencemapMtraverse sequenceA Data.FoldableFoldablefoldlfoldl'foldl1foldrfoldr'foldr1foldfoldMapnulllengthmaximumminimumelemsumproductfoldMap' Data.EitherEitherRightLeftGHC.IO.ExceptionAssertionFailed Data.DataDatagfoldlgunfoldtoConstr dataTypeOf dataCast1 dataCast2gmapTgmapQlgmapQrgmapQgmapQigmapMgmapMpgmapMoData.Bifunctor BifunctorbimapfirstsecondSTMSumgetSumProduct getProductGHC.RealIntegral toIntegerquotremdivmodquotRemdivModRational MonadPlusmzeromplusGHC.ReadRead readsPrecreadListreadPrec readListPrecForeign.StorableStorablesizeOf alignment peekElemOff pokeElemOff peekByteOff pokeByteOffpeekpokeGHC.IntInt8Int16Int32Int64 GHC.Stable StablePtrGHC.PtrPtrData.SemigroupLastgetLastFirstgetFirstGHC.MVarMVarGHC.Exception.Type Exception toException fromExceptiondisplayException GHC.STRefSTRefGHC.IO.Encoding.Types TextEncodingIOErrorControl.Monad.IO.ClassMonadIOliftIOControl.Concurrent.ChanChan IOException ioe_handleioe_type ioe_locationioe_description ioe_errno ioe_filenameData.Functor.ComposeCompose getComposeBlockedIndefinitelyOnMVarGHC.EnumBoundedminBoundmaxBoundEnumfromEnumtoEnumenumFrom enumFromThen enumFromToenumFromThenTosuccpred GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanhlog1pexpm1log1pexplog1mexp Fractional fromRational/recipGHC.NumNum fromInteger-negate+*abssignumReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloorData.Typeable.InternalTypeableControl.Monad.FixMonadFixmfixControl.Monad.Fail MonadFailfail GHC.GenericsGenericGeneric1 GHC.RecordsHasFieldgetFieldRatioFunPtrControl.Exception.Base TypeError Data.TypeableTypeRep Unsafe.CoerceUnsafeEquality UnsafeRefl SomeException Alternativeempty<|>somemany Data.VersionVersion versionBranch versionTagsGHC.Bits FiniteBits finiteBitSizecountLeadingZeroscountTrailingZerosBits.&..|.xor complementshiftrotatezeroBitsbitsetBitclearBit complementBittestBit bitSizeMaybebitSizeisSignedshiftL unsafeShiftLshiftR unsafeShiftRrotateLrotateRpopCount GHC.UnicodeGeneralCategoryControlUppercaseLetterLowercaseLetterTitlecaseLetterModifierLetter OtherLetterNonSpacingMarkSpacingCombiningMark EnclosingMark DecimalNumber LetterNumber OtherNumberConnectorPunctuationDashPunctuationOpenPunctuationClosePunctuation InitialQuote FinalQuoteOtherPunctuation MathSymbolCurrencySymbolModifierSymbol OtherSymbolSpace LineSeparatorParagraphSeparatorFormat Surrogate PrivateUse NotAssignedText.ParserCombinators.ReadPReadPReadSText.ParserCombinators.ReadPrecReadPrec ThreadStatus ThreadRunningThreadFinished ThreadBlocked ThreadDied BlockReason BlockedOnMVarBlockedOnBlackHoleBlockedOnException BlockedOnSTMBlockedOnForeignCallBlockedOnOtherTVar Data.BitsIffgetIffXorgetXorIorgetIorAndgetAndData.OrdDowngetDownData.Type.Equality:~~:HRefl:~:ReflControl.CategoryCategoryid. Data.ProxyKProxyProxy Foreign.PtrIntPtrWordPtr GHC.IO.IOModeIOModeReadMode WriteMode AppendMode ReadWriteModeMingetMinMaxgetMaxFixityPrefixInfixAltgetAltAllgetAllEndoappEndoDualgetDual Data.MonoidApgetApData.Functor.ConstConstgetConstArithException UnderflowOverflowLossOfPrecision DivideByZeroDenormalRatioZeroDenominator GHC.Exception ErrorCallErrorCallWithLocationGHC.IO MaskingStateUnmaskedMaskedInterruptibleMaskedUninterruptibleFilePath GHC.IORefIORefFinalizerEnvPtr FinalizerPtr GHC.IO.DeviceSeekMode AbsoluteSeek RelativeSeek SeekFromEnd NewlineModeinputNLoutputNLNewlineLFCRLF BufferMode NoBuffering LineBufferingBlockBuffering Data.DynamicDynamic IOErrorTypeEOF AlreadyExists NoSuchThing ResourceBusyResourceExhaustedIllegalOperationPermissionDenied UserErrorUnsatisfiedConstraints SystemError ProtocolError OtherErrorInvalidArgumentInappropriateType HardwareFaultUnsupportedOperation TimeExpiredResourceVanished InterruptedExitCode ExitSuccess ExitFailureFixIOExceptionArrayExceptionIndexOutOfBoundsUndefinedElementAsyncException StackOverflow HeapOverflow ThreadKilled UserInterruptSomeAsyncExceptionCompactionFailedAllocationLimitExceededDeadlockBlockedIndefinitelyOnSTMPrimMVarNestedAtomicallyNonTermination NoMethodError RecUpdError RecConError RecSelErrorPatternMatchFailControl.ExceptionHandlerGHC.Conc.Signal HandlerFunSignal GHC.IO.Handle HandlePosnData.Functor.IdentityIdentity runIdentity Control.Arrow ArrowLooploop ArrowMonad ArrowApplyapp ArrowChoice|||+++leftright ArrowPlus<+> ArrowZero zeroArrowKleisli runKleisliArrow***arr&&&Control.ApplicativeZipList getZipList WrappedArrow WrapArrow unwrapArrow WrappedMonad WrapMonad unwrapMonadGHC.StableName StableNameGHC.OverloadedLabelsIsLabel fromLabel Data.UniqueUniqueControl.Concurrent.QSemNQSemNControl.Concurrent.QSemQSemSystem.TimeoutTimeoutConIndex ConstrRep AlgConstr IntConstr FloatConstr CharConstrDataRepIntRepFloatRepAlgRepCharRepNoRepConstrDataType WrappedMonoid WrapMonoid unwrapMonoidArgMaxArgMinArg Data.FixedPicoE12NanoE9MicroE6MilliE3CentiE2DeciE1UniE0 HasResolution resolutionFixedMkFixed Data.ComplexComplex:+Data.Functor.ClassesShow2liftShowsPrec2 liftShowList2Read2liftReadsPrec2 liftReadList2 liftReadPrec2liftReadListPrec2Ord2 liftCompare2Eq2liftEq2Show1 liftShowsPrec liftShowListRead1 liftReadsPrec liftReadList liftReadPrecliftReadListPrecOrd1 liftCompareEq1liftEqData.Functor.ContravariantOpgetOp EquivalencegetEquivalence Comparison getComparison Predicate getPredicate Contravariant contramap>$ GHC.TupleSolo Control.MonadfoldMGHC.IO.Handle.Text hGetContents System.IOinteractmapM_ sequence_GHC.Listiteraterepeatcycle Data.OldList singletonheadunconslasttailinitmapreverse intersperseconcat concatMapanyall replicatetakedropsplitAt takeWhile dropWhile dropWhileEndspanbreakgroupinitstails isPrefixOf isSuffixOf isInfixOf stripPrefixnotElemfindfilter partition elemIndex elemIndices findIndex findIndicesnubdeleteunion intersectsortinsertnubBydeleteBydeleteFirstsByunionBy intersectBygroupBysortByinsertBy genericLength genericTake genericDropgenericSplitAtgenericReplicatezipzipWithhGetLinehPutStr hPutStrLngetLine getContentsputStrputStrLnreadFile writeFile appendFilelineswordsunlinesunwordsandorunzip intercalatenot$assert otherwise++joinbracket_hIsTerminalDeviceGHC.IO.StdHandlesstdoutstdinforkIOControl.ConcurrentforkOSforkOnforkIOWithUnmaskforkOnWithUnmaskforM_GHC.Errerrorthroweven atomically Data.Functor<$>stimesIdempotentstimesIdempotentMonoidbracket Data.Tuplefst Data.Boolbool Text.Read readMaybe maximumBy minimumBy genericIndexstToIO Data.CharisLetteruncurryfreeHaskellFunPtropenFileisAlphacoercenullPtrordGHC.CharchrforforMthrowTo Data.IORefatomicWriteIORefatomicModifyIORefForeign.ForeignPtr.Imp newForeignPtrstderrforeverwithForeignPtrGHC.IO.Encodingutf8mkTextEncodinghSeekhFlush hLookAheadfixIO killThreadsetAllocationCounterenableAllocationLimittouchForeignPtraddForeignPtrFinalizer GHC.Conc.IO threadDelaymaskthrowIO GHC.IO.UnsafeunsafePerformIOtrycatch readFile'System.IO.ErrorisDoesNotExistErrorSystem.EnvironmentgetArgshSetNewlineModehCloseisAlreadyInUseErrorisPermissionErrorhSetBinaryMode isFullError isEOFErrorlocaleEncodingisIllegalOperationliftM forkFinallygetEnvsetEnv lookupEnvunsetEnvunfoldr transpose System.ExitexitWithhGetBufhPutBuf hWaitForInputsortOnseq newStablePtrprint GHC.Magiclazy assertError Debug.Tracetraceinline>>> fromIntegral realToFracguardtoDynunsafeEqualityProof unsafeCoerce#^&&|| GHC.NaturalminusNaturalMaybeerrorWithoutStackTrace undefinedabsurdvacuous<**>liftAliftA3=<<whenliftM2liftM3liftM4liftM5apconstflip$!untilasTypeOf makeVersionsubtract Data.MaybemaybeisJust isNothingfromJust fromMaybe maybeToList listToMaybe catMaybesmapMaybefoldl1'scanlscanl1scanl'scanrscanr1iterate'lookup!!zip3zipWith3unzip3showsshowChar showString showParen showLitChar intToDigit% numerator denominator showSignedodd^^gcdlcm bitDefaulttestBitDefaultpopCountDefaulttoIntegralSized byteSwap16 byteSwap32 byteSwap64 bitReverse8 bitReverse16 bitReverse32 bitReverse64runST unsafeCoerceunsafeCoerceUnliftedunsafeCoerceAddr showFloat floatToDigitsfromRatclampnewSTRef readSTRef writeSTRefunsafeDupablePerformIOunsafeInterleaveIOsndcurryswap newEmptyMVarnewMVartakeMVarreadMVarputMVar tryTakeMVar tryPutMVar tryReadMVar isEmptyMVarControl.Concurrent.MVaraddMVarFinalizer<&>$>void Data.Functionfixon& applyWhengeneralCategoryisAsciiisLatin1 isAsciiLower isAsciiUpper isControlisPrintisSpaceisUpper isUpperCaseisLower isLowerCase isAlphaNumisDigit isOctDigit isHexDigit isPunctuationisSymboltoUppertoLowertoTitleoptional readP_to_S readS_to_Plex readPrec_to_P readP_to_Prec readPrec_to_S readS_to_Prec readParen lexLitChar readLitChar lexDigitsNumericreadIntreadBinreadOctreadDecreadHex readFloat readSignedshowInt showEFloat showFFloat showGFloat showFFloatAlt showGFloatAlt showHFloat showIntAtBaseshowHexshowOctshowBincastPtrplusPtralignPtrminusPtr nullFunPtr castFunPtrcastFunPtrToPtrcastPtrToFunPtr threadStatus myThreadId freeStablePtrdeRefStablePtrcastStablePtrToPtrcastPtrToStablePtreitherleftsrightspartitionEithersisLeftisRightfromLeft fromRightreads readEitherreadoneBits.^..>>..<<.!>>.!<<. comparing<<< asProxyTypeOf ptrToWordPtr wordPtrToPtr ptrToIntPtr intPtrToPtr digitToIntisMarkisNumber isSeparator stimesMonoidfoldrMfoldlM traverse_for_ sequenceA_asummsum tyConPackage tyConModule tyConNametyConFingerprintrnfTyContypeRepFingerprint trLiftedRep typeRepTyContypeReptypeOf rnfTypeRep showsTypeRepcasteqTheqTgcastgcast1gcast2 funResultTymkFunTy splitTyConApp typeRepArgstypeOf1typeOf2typeOf3typeOf4typeOf5typeOf6typeOf7\\ mapAccumL mapAccumRzip4zip5zip6zip7zipWith4zipWith5zipWith6zipWith7unzip4unzip5unzip6unzip7 subsequences permutationsunsupportedOperation userError interruptiblegetMaskingState onExceptionmask_uninterruptibleMask_uninterruptibleMaskfinallyevaluatenewIORef readIORef writeIORefatomicModifyIORef'mallocForeignPtrmallocForeignPtrBytesaddForeignPtrFinalizerEnvnewForeignPtr_castForeignPtrplusForeignPtrfinalizeForeignPtrnewForeignPtrEnvmallocForeignPtrArraymallocForeignPtrArray0 nativeNewlineuniversalNewlineModenativeNewlineModenoNewlineTranslation mkWeakIORef modifyIORef modifyIORef'fromDyn fromDynamicdynApplydynApp dynTypeRepblockedIndefinitelyOnMVarblockedIndefinitelyOnSTMallocationLimitExceededcannotCompactFunctioncannotCompactPinnedcannotCompactMutableasyncExceptionToExceptionasyncExceptionFromException stackOverflow heapOverflow ioExceptionioErroruntanglereportHeapOverflowgetAllocationCounterdisableAllocationLimitnumCapabilitiesgetNumCapabilitiessetNumCapabilitiesgetNumProcessors numSparks childHandleryield labelThreadpseqpar runSparks listThreadsthreadCapabilitymkWeakThreadIdnewStablePtrPrimMVar unsafeIOToSTMretrythrowSTMcatchSTMnewTVar newTVarIO readTVarIOreadTVar writeTVarwithMVar modifyMVar_reportStackOverflow reportErrorsetUncaughtExceptionHandlergetUncaughtExceptionHandler catchJusthandle handleJust mapExceptiontryJustbracketOnErrorcatchesallowInterruptSystem.IO.Unsafe unsafeFixIOswapMVarwithMVarMasked modifyMVarmodifyMVarMasked_modifyMVarMasked mkWeakMVarControl.Monad.ST.ImpfixST setHandler runHandlers tryIOError mkIOErrorisAlreadyExistsError isUserErrorisResourceVanishedErroralreadyExistsErrorTypedoesNotExistErrorTypealreadyInUseErrorType fullErrorType eofErrorTypeillegalOperationErrorTypepermissionErrorType userErrorTyperesourceVanishedErrorTypeisAlreadyExistsErrorTypeisDoesNotExistErrorTypeisAlreadyInUseErrorTypeisFullErrorTypeisEOFErrorTypeisIllegalOperationErrorTypeisPermissionErrorTypeisUserErrorTypeisResourceVanishedErrorTypeioeGetErrorTypeioeGetErrorStringioeGetLocation ioeGetHandleioeGetFileNameioeSetErrorTypeioeSetErrorStringioeSetLocation ioeSetHandleioeSetFileName modifyIOErrorannotateIOError catchIOErrorutf8_bomutf32utf32beutf32leutf16utf16beutf16lelatin1char8traceIOhGetChar hGetContents'hPutCharhPutBufNonBlocking hGetBufSomehGetBufNonBlockingensureIOManagerIsRunningioManagerCapabilitiesChangedthreadWaitReadthreadWaitWritethreadWaitReadSTMthreadWaitWriteSTM closeFdWith registerDelaywithFileopenBinaryFilewithBinaryFile hFileSize hSetFileSizehIsEOFisEOF hSetBuffering hSetEncoding hGetEncodinghGetPosnhSetPosnhTellhIsOpen hIsClosed hIsReadable hIsWritable hGetBuffering hIsSeekablehSetEchohGetEchohShowputChargetChar getContents'readLnreadIOhReadyhPrint openTempFileopenBinaryTempFile"openTempFileWithDefaultPermissions(openBinaryTempFileWithDefaultPermissionsreturnA^>>>>^<<^^<<leftApp mapAccumM forAccumM fmapDefaultfoldMapDefault Data.ListisSubsequenceOf showVersion parseVersionfilterM>=><=< mapAndUnzipMzipWithM zipWithM_foldM_ replicateM replicateM_unless<$!>mfilter System.MemperformMinorGCperformMajorGC performGC exitFailure exitSuccessdiemakeStableNamehashStableName eqStableName Text.PrintfprintfhPrintf!System.Environment.ExecutablePathgetExecutablePathexecutablePath getProgNamewithArgs withProgNamegetEnvironment traceMarkerIO traceMarker traceEventIO traceEvent traceStack traceShowMtraceM traceShowId traceShowtraceId putTraceMsg traceWith traceShowWithtraceEventWith flushEventLog newUnique hashUnique Data.STRef modifySTRef modifySTRef' Data.RatioapproxRationalGHC.Exts groupWithsortWithnewQSemN waitQSemN signalQSemNnewQSemwaitQSem signalQSemnewChan writeChanreadChandupChangetChanContentswriteList2ChanrtsSupportsBoundThreadsforkOSWithUnmaskisCurrentThreadBoundrunInBoundThreadrunInUnboundThreadtimeout fromConstr fromConstrB fromConstrM dataTypeName dataTypeRep constrType constrRep repConstr mkDataType mkConstrTagmkConstrdataTypeConstrs constrFields constrFixity showConstr readConstr isAlgType indexConstr constrIndexmaxConstrIndex mkIntType mkFloatType mkCharTypemkIntegralConstr mkRealConstr mkCharConstr mkNoRepType isNorepType tyconUQname tyconModulecycle1diff mtimesDefaultdiv'divMod'mod' showFixedrealPartimagPart conjugatemkPolarcispolar magnitudephaseeq1compare1 readsPrec1 readPrec1liftReadListDefaultliftReadListPrecDefault showsPrec1eq2compare2 readsPrec2 readPrec2liftReadList2DefaultliftReadListPrec2Default showsPrec2 readsDatareadDatareadsUnaryWith readUnaryWithreadsBinaryWithreadBinaryWithshowsUnaryWithshowsBinaryWith readsUnary readsUnary1 readsBinary1 showsUnary showsUnary1 showsBinary1phantom$<>$<>$$<defaultComparisondefaultEquivalencecomparisonEquivalence defaultCfg configCodecEvalMode ProcessErrorlistExecutablesevalDirisDirDTdecideSelectionversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDirgetDataFileName getSysconfDir