h&UMӔ      !"#$%&'()*+,-. / 0 1 2 3 4 5 6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ `abcdefghijklmnopqrstuvwxyz{|}~(c) Sergey Vinokurov 2022Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred emacs-module:Indended to be used with unboxed string literals like this mkLiteralDoc "foo"#  emacs-moduleTurn abritrary bytestring into .(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred|  emacs-modulePossible Emacs function call outcomes. This is Haskell's version of  emacs-moduleFunction has returned normally.  emacs-module%Function has signaled an error using signal.  emacs-moduleFunction has exit using throw.  (c) Sergey Vinokurov 2022Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred: emacs-module Result of process_inputs Emacs API call.(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred&'(c) Sergey Vinokurov 2022Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred1?  emacs-moduleBasic handle on an Emacs value. emacs-module6Tag for global values are independent of environment (Env) that produced it.Can be used to e.g. cache values that are expensive to compute from scratch. emacs-moduleTag denoting regular Emacs values. Will go away after control returns to Emacs. emacs-moduleTag denoting either global or regular emacs values. Cannot tell them apart, just pass to Emacs.(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred r(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred 1 ( emacs-module;Pointer to a function that may later be called by by Emacs.* emacs-module3Emacs environment, right from the 'emacs-module.h'.+ emacs-moduleTake Haskell function and return C pointer to function (which ideally needs to be cleaned up later by ). ()*+(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred 1?P/ emacs-module*Value that is independent of environment (Env) that produced it. Incidentally, this implies that it's "protected" against Emacs GC and thus will not unexpectedly go out of scope.In order to prevent memory leaks, value is registered in the Emacs monad than produced it and will be freed when the monad finishes. To make the connection clear the value is tagged with parameter s., which serves the same purpose as tag of the ST monad. That is, it ensures that value cannot leave the scope of the monad that produced it./ (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred// (c) Sergey Vinokurov 2022Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred150101 (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-InferredE4 emacs-moduleCall stacks for all emacs-related functions in Haskell. Will be disabled unless this package was built with 'call-stacks' flag enabled.4545(c) Sergey Vinokurov 2022Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred?&'6789&'6789(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred 16 emacs-module4A wrapper around C value that denotes true or false. emacs-moduleCheck whether a  denotes true. emacs-moduleCheck whether a  denotes false.= emacs-moduleCheck wheter passed  emacs_env structure has expected size so that we will be able to access all of its fields.Q emacs-moduleCopy the content of the Lisp string VALUE to BUFFER as an utf8 null-terminated string.SIZE must point to the total size of the buffer. If BUFFER is NULL or if SIZE is not big enough, write the required buffer size to SIZE and return true.Note that SIZE must include the last null byte (e.g. "abc" needs a buffer of size 4).2Return true if the string was successfully copied. emacs-moduleProcesses pending input events and returns whether the module function should quit.A emacs-module Symbol output emacs-module Data outputB emacs-module Error symbol emacs-module Error dataC emacs-module Tag, a symbol emacs-moduleValueF emacs-module Minimum arity emacs-module Maximum arity emacs-moduleImplementation emacs-module Documentation emacs-module Extra dataG emacs-moduleFunction emacs-moduleNumber of arguments emacs-moduleActual argumentsH emacs-moduleFunction emacs-moduleNumber of arguments emacs-moduleActual argumentsQ emacs-moduleEmacs value that holds a string emacs-moduleDestination, may be NULL emacs-module SIZE pointerR emacs-moduleUtf8-encoded string, may contain null bytes and is not required to be terminated with one. emacs-moduleLength.**:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred1% emacs-module'Symbols that are known at compile time.Will just pass pointer to 0-terminated statically-allocated string to Emacs API when used.[ emacs-module6Should be applied to unboxed string literals like this mkSymbolNameUnsafe "foo"# Can be safely applied to non-literals (e.g. arbitrary pointers) if it's guaranteed that address points to a null-terminated strings. Otherwise behaviour is undefined.The string literal must only contain ASCII symbols. This condition is required by the Emacs API and results in undefined behaviour if violated.,-[\]^ (c) Sergey Vinokurov 2022Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred1.. (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred*__(c) Sergey Vinokurov 2022Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred1.`abcdefghijklmnopq`abcdefghijklmnopq.(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred3,-[\]^,\-][^(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred <r emacs-modulePass to S so that Emacs will free the Haskell's stable pointer when the corresponding elisp value goes out of scope., ()*+:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZr,* :;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ+)(r(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred"1%s emacs-moduleA low-level error thrown when assumptions of this package are violated and it's not safe to proceed further.E.g. Emacs returned value not specified in a C enum - cannot really process it in a meaningful way.w emacs-module7A high-level error thrown when an Emacs function fails.| emacs-moduleError thrown to emacs by Haskell functions when anything goes awry. emacs-module%A Haskell exception used to signal a signal& exit performed by an Emacs function.7Unlikely to be needed when developing Emacs extensions. emacs-module%A Haskell exception used to signal a throw& exit performed by an Emacs function.7Unlikely to be needed when developing Emacs extensions. emacs-moduleCatch all errors this package might throw in an IO action and make Emacs aware of them.This is a convenience function intended to be used around exported  initialise" entry point into an Emacs module. emacs-module Function name emacs-module Message body emacs-moduleMessage emacs-moduleError data from Emacs emacs-module Error message emacs-moduleResult to return on error.#stuvwxyz{|}~#wxyz{stuv|}~(c) Sergey Vinokurov 2022Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred"1& emacs-module Error symbol emacs-module Error data(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone ' emacs-module3Emacs environment, right from the 'emacs-module.h'.(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred )1,; emacs-moduleHelper to retrieve number of arguments a function takes for Emacs. emacs-moduleSpecification of the arguments that exposed functions can receive from Emacs.This type family allows to declaratively specify how many required and optional arguments a function can take and whether it accepts rest arguments. It's a direct translation of argument lists in Emacs lisp, e.g. (defun foo (x y z &optional w t &rest quux) (+ (* x y z) (* (or w 1) (or t 2)) (length quux)))The function above has 3 required arguments, 2 optional and also has rest arguments. The type family below has two  s and one  to provide that info. emacs-module-End of argument list of an exported funciton. emacs-module6All other arguments of an exported function as a list. emacs-module*Optional argument of an exported function. emacs-module*Required argument of an exported function. emacs-moduleType-level Peano numbers.Indented to be used with  DataKinds extension enabled.(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred1<" emacs-moduleA mtl-style typeclass for interacting with Emacs. Typeclass functions are mostly direct translations of emacs interface provided by 'emacs-module.h'.#For more functions please refer to Emacs.Module.Functions module. emacs-moduleMake a global reference to a value so that it will persist across different calls from Emacs into exposed functions. emacs-moduleFree a global reference. emacs-module*Check whether a non-local exit is pending. emacs-moduleCheck whether a non-local exit is pending and get detailed data in case it is. emacs-moduleEquivalent to Emacs's signal* function. Terminates current computation.NB if a non-local exit is alredy pending, this function will not overwrite it. In order to do that, first use . emacs-moduleEquivalent to Emacs's throw* function. Terminates current computation.NB if a non-local exit is alredy pending, this function will not overwrite it. In order to do that, use . emacs-moduleClean any pending local exits. emacs-moduleMake Haskell function available as an anonymous Emacs function. In order to be able to use it later from Emacs it should be fed into  bindFunction. emacs-module9Invoke an Emacs function that may call back into Haskell. emacs-moduleInvoke an Emacs function. The function should be simple and must not call back into Haskell. emacs-moduleInvoke an Emacs function. The function should be simple and must not call back into Haskell.Exit status is not checked - function is expected to always succeed. Consult Emacs side to make sure that's the case. Examples of safe functions: cons, list, vector, etc. emacs-module$Convert a string to an Emacs symbol. emacs-module.Get type of an Emacs value as an Emacs symbol. emacs-module!Check whether Emacs value is not nil. emacs-modulePrimitive equality. Tests whether two symbols, integers or characters are the equal, but not much more. For more complete equality comparison do intern "equal" >>= \equal -> funcallPrimitiveUnchecked equal [x, y] emacs-module*Try to unpack a wide integer from a value. emacs-modulePack a wide integer for Emacs. emacs-module3Try to unpack a floating-point number from a value. emacs-module1Convert a floating-point number into Emacs value. emacs-module,Extract string contents from an Emacs value. emacs-moduleExtract string contents from an Emacs value as utf8-encoded short bytestring. emacs-module6Convert a utf8-encoded ByteString into an Emacs value. emacs-module+Extract a user pointer from an Emacs value. emacs-module(Pack a user pointer into an Emacs value. emacs-moduleSet user pointer to a new value emacs-module%Extract a finaliser from an user_ptr. emacs-module&Assign new finaliser into an user_ptr. emacs-module(Extract an element from an Emacs vector. emacs-moduleExtract an element from an Emacs vector without checking for errors. emacs-module'Assign an element into an Emacs vector. emacs-moduleGet size of an Emacs vector. emacs-moduleCheck whether user pressed 'C-g' and we should abort our operation. emacs-module3Basic Haskell function that can be called by Emacs. emacs-module Error symbol emacs-module=Error data, will be converted to a list as Emacs API expects. emacs-moduleTag emacs-moduleData emacs-moduleHaskell function to export emacs-module Documentation emacs-module Function name emacs-module Arguments emacs-module Function name emacs-module Arguments emacs-module Function name emacs-module Arguments emacs-moduleFinalisation action that will be executed when user pointer gets garbage-collected by Emacs. emacs-moduleVector emacs-moduleIndex emacs-module New value""(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-InferredH(! emacs-module(Call a function by its name, similar to . emacs-module(Call a function by its name, similar to . emacs-module>Call a function by its name and ignore its result, similar to . emacs-module Assign a name to function value. emacs-moduleSignal to Emacs that certain feature is being provided. Returns provided symbol. emacs-modulePack a stable pointer as Emacs user_ptr. emacs-moduleTry to obtain an  from Emacs value.This function will fail if Emacs value is not an integer or contains value too big to fit into  on current architecture. emacs-modulePack an  integer for Emacs. emacs-module*Convert a Text into an Emacs string value. emacs-module5Convert a ShortByteString into an Emacs string value. emacs-module&Extract a boolean from an Emacs value. emacs-module*Convert a Bool into an Emacs string value. emacs-module&Get all elements form an Emacs vector. emacs-module&Get all elements form an Emacs vector. emacs-module&Get all elements form an Emacs vector. emacs-moduleCreate an Emacs vector. emacs-moduleConcatenate two vectors. emacs-module#Make a cons pair out of two values. emacs-moduleTake first element of a pair. emacs-moduleTake second element of a pair. emacs-moduleA nil symbol aka empty list. emacs-module$Mutate first element of a cons pair. emacs-module%Mutate second element of a cons pair. emacs-module1Construct vanilla Emacs list from a Haskell list. emacs-module+Extract vanilla Emacs list as Haskell list. emacs-module-Extract vanilla Emacs list as a Haskell list. emacs-module'Fold Emacs list starting from the left. emacs-module'Fold Emacs list starting from the left. emacs-module#Add new 'face property to a string. emacs-module#Add new 'face property to a string. emacs-moduleConcatenate two strings. emacs-module+Convert an Emacs value into a string using prin1-to-string. emacs-moduleWrapper around Emacs  symbol-name function - take a symbol and produce an Emacs string with its textual name. emacs-moduleName emacs-moduleFunction value emacs-moduleFeature to provide emacs-modulecar emacs-modulecdr emacs-module Cons pair emacs-module New value emacs-module Cons pair emacs-module New value emacs-moduleString to add face to emacs-module Face name emacs-modulePropertised string emacs-moduleString to add properties to emacs-module Properties emacs-modulePropertised string$$(c) Sergey Vinokurov 2022Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred ")1K emacs-module7Concrete monad for interacting with Emacs. It provides: Ability to call Emacs C functions and automatically rethrows any errors (non-local exits) from elisp as Haskell exceptions.Tracks ownership of any produced Emacs values and communicates that to Emacs, so that GC on Emacs side will not make any values in Haskell invalid (funnily enough, this can happen!). Parameter s serves to make ownership-tracking capabilities possible. It's use is the same as in  monad. That is, it creates local threads so that no produced Emacs values can leave past . emacs-moduleExecute emacs interaction session using an environment supplied by Emacs.$(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-InferredL*/stuvwxyz{:wxyz{stuv* !" !# !$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO PQ R S T U V WXYZ[\\]^_`abcdefgPhijklmnopqrstuvwxyz{|}~ _`abcdegPhijklrsxyzHJLQcb'emacs-module-0.2-GIOgS0MgcHfDyfvdtS8Z46 Emacs.ModuleEmacs.Module.FunctionsData.Emacs.Module.DocData.Emacs.Module.Env.Functions"Data.Emacs.Module.Env.ProcessInputData.Emacs.Module.NonNullPtrData.Emacs.Module.EnvData.Emacs.Module.SymbolName/Data.Emacs.Module.SymbolName.Predefined.FuncallData.Emacs.Module.ValueData.Emacs.Module.GetRawValueEmacs.Module.AssertData.Emacs.Module.SymbolName.TH'Data.Emacs.Module.SymbolName.PredefinedEmacs.Module.ErrorsData.Emacs.Module.RuntimeData.Emacs.Module.ArgsEmacs.Module.Monad.ClassEmacs.Module.Monad%Data.Emacs.Module.NonNullPtr.Internal$Data.Emacs.Module.Raw.Value.InternalData.Emacs.Module.Raw.Value"Data.Emacs.Module.Raw.Env.InternalData.Emacs.Module.Raw.Env.TH Data.Emacs.Module.Value.InternalForeign.Ptr.BuilderData.Emacs.Module.Raw.Env%Data.Emacs.Module.SymbolName.InternalEmacs.Module.Monad.Common Control.MonadST(exceptions-0.10.7-6dRkz4VpCRaKcqo9xph2sNControl.Monad.CatchthrowM MonadThrow MonadMaskDoc mkLiteralDoc mkTextDocuseDocAsCString $fIsStringDoc $fShowDoc FuncallExitFuncallExitReturnFuncallExitSignalFuncallExitThrowfuncallExitToNumfuncallExitFromNumfoldFuncallExitFromNum$fPrettyFuncallExit$fEqFuncallExit$fOrdFuncallExit$fShowFuncallExit$fDataFuncallExit$fGenericFuncallExit$fLiftBoxedRepFuncallExit$fFunctorFuncallExit$fFoldableFuncallExit$fTraversableFuncallExitResultContinueQuit resultToNum resultFromNum$fPrettyResult $fEqResult $fOrdResult $fShowResult $fDataResult$fGenericResult$fLiftBoxedRepResult NonNullPtr unNonNullPtr RawFunctionRawFunctionTypeEnv exportToEmacs SymbolNamemkSymbolNameStringfuncallValue GetRawValue getRawValue$fGetRawValueValue$fGetRawValueRawValue WithCallStack emacsAssert mkNonNullPtr allocaNonNullallocaBytesNonNullwithPtrLenNonNullEnumFuncallExitunEnumFuncallExit isValidEnv makeGlobalRef freeGlobalRefnonLocalExitChecknonLocalExitGetnonLocalExitSignalnonLocalExitThrownonLocalExitClearvariadicFunctionArgs makeFunctionfuncallPrimitiveinterntypeOfisNotNileqextractInteger makeInteger extractFloat makeFloatcopyStringContents makeString makeUserPtr getUserPtr setUserPtrgetUserFinalisersetUserFinaliservecGetvecSetvecSizemkSymbolNameUnsafe mkSymbolNamemkSymbolNameShortByteString reifySymbolcacheSymerrorlistconscarcdrsetcarsetcdrnilfsetprovidetvectorvconcatface propertizeconcat symbolName prin1ToStringfreeStablePtrFinaliserEmacsInternalErroremacsInternalErrMsgemacsInternalErrStack EmacsError emacsErrMsg emacsErrData emacsErrStack UserErroruserErrFunctionName userErrMsg userErrStack EmacsSignalemacsSignalSymemacsSignalDataemacsSignalInfoemacsSignalOrigin EmacsThrow emacsThrowTagemacsThrowValueemacsThrowOriginreportEmacsThrowToEmacsreportEmacsSignalToEmacs mkUserError mkEmacsErrorreportErrorToEmacsmkEmacsInternalErrorreportInternalErrorToEmacsformatSomeExceptionreportAnyErrorToEmacsreportAllErrorsToEmacs$fExceptionEmacsThrow$fShowEmacsThrow$fExceptionEmacsSignal$fShowEmacsSignal$fPrettyUserError$fExceptionUserError$fPrettyEmacsError$fExceptionEmacsError$fPrettyEmacsInternalError$fShowEmacsInternalError$fExceptionEmacsInternalError$fShowEmacsError$fShowUserErrorRuntime unRuntimevalidateRuntimewithEnvironment GetAritiesaritiesEmacsInvocationsupplyEmacsArgs EmacsArgsStopRestORNatZS $fNatValueS $fNatValueZ$fEmacsInvocationSoptrest$fEmacsInvocationZSrest$fEmacsInvocationZZTrue$fEmacsInvocationZZFalse$fGetAritiesreqoptTrue$fGetAritiesreqoptFalse MonadEmacsfuncallPrimitiveUncheckedextractWideIntegermakeWideInteger extractDouble makeDouble extractTextextractShortByteStringextractUserPtr assignUserPtrextractUserPtrFinaliserassignUserPtrFinaliser unsafeVecGet processInput EmacsFunctionfuncallPrimitiveSymfuncallPrimitiveUncheckedSymfuncallPrimitiveSym_ bindFunctionmakeUserPtrFromStablePtrextractStablePtrFromUserPtr extractInt extractOsPathmakeIntmakeTextmakeShortByteString extractBoolmakeBoolextractVectorWithextractVectorMutableWithextractVectorAsPrimArrayWith makeVectorvconcat2makeList extractListextractListWithfoldlEmacsListWithunfoldEmacsListWith addFacePropconcat2 valueToTextEmacsM runEmacsM$fMonadEmacskEmacsMValue$fMonadBaseControlIOEmacsM$fMonadBaseIOEmacsM$fMonadIOEmacsM$fMonadInterleaveEmacsM$fFunctorEmacsM$fApplicativeEmacsM $fMonadEmacsM$fMonadThrowEmacsM$fMonadCatchEmacsM$fMonadMaskEmacsM$fMonadFixEmacsM$fPrimMonadEmacsMRawValuePinnedRegularUnknown unRawValuePinning toUnknownfreeHaskellFunPtrWrapped unRawFunction EnvironmentunEnv#toPtrfromPtrtemplate-haskellLanguage.Haskell.TH.SyntaxSafety InterruptibleSafeUnsafe wrapEmacsFuncunValueghc-primGHC.Prim ByteArray#Int# BuilderCacheBuilderwithByteArrayLen withPtrLenstorableprimcoerceBuilderCachewithBuilderCacheCBooleanisTruthy isNonTruthyEnumProcessInputResultunEnumProcessInputResultsetFunctionFinalizerStatic StaticSymbol DynamicSymbol CachedSymbolmkCachedSymbolNamemkSymbolNameCacheDynamic unDynamicunStaticreifySymbolRawreifySymbolUnknown NonLocalStatenlsErrnlsDatanlsSizeEmacsRes EmacsSuccessEmacsExitSignalEmacsExitThrowwithNonLocalStateunpackEnumFuncallExitunpackEnumFuncallExitSafecheckNonLocalExitSignalcheckNonLocalExitFullextractSignalInfoextractTextUnsafe GHC.TypesBoolInt