h$JET      !"# $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P 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 w x y z { | } ~                                                  (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred 35678;?u 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 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone emacs-module*Value that is independent of environment (Env) that produced it.Can be used to e.g. cache values that are expensive to compute from scratch. emacs-moduleBasic handle on an Emacs value. Can be GC'ed after any call into Emacs. To overcome that, use ValueGC.Not a real pointer because emacs values are not really pointers. That is, they're completely opaque.(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNoneY(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone  emacs-moduleQuasi-quoter for .. Avoids some runtime overhead of creating a 5, but in other respects is absolutely equivalent to . ![esym|foo|] == mkSymbolName "foo"True(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone8  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.comNone (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.com Safe-Inferred-" emacs-moduleCall stacks for all emacs-related functions in Haskell. Will be disabled unless this package was build with  assertions flag enabled.(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone !" !"(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.comNone(c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone? emacs-module4A wrapper around C value that denotes true or false. emacs-moduleCheck whether a  denotes true., emacs-moduleCheck wheter passed  emacs_env structure has expected size so that we will be able to access all of its fields.@ 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.0 emacs-module Symbol output emacs-module Data output1 emacs-module Error symbol emacs-module Error data2 emacs-module Tag, a symbol emacs-moduleValue5 emacs-module Minimum arity emacs-module Maximum arity emacs-moduleImplementation emacs-module Documentation emacs-module Extra data6 emacs-moduleFunction emacs-moduleNumber of arguments emacs-moduleActual arguments7 emacs-moduleFunction emacs-moduleNumber of arguments emacs-moduleActual arguments@ emacs-moduleEmacs value that holds a string emacs-moduleDestination, may be NULL emacs-module SIZE pointerA emacs-module!0-terminated utf8-encoded string. emacs-moduleLength.%'()*+,-./0123456789:;<=>?@ABCDEFGHI (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNoneJ emacs-modulePass to B so that Emacs will free the Haskell's stable pointer when the corresponding elisp value goes out of scope..#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ.%)*+(',-./0123456789:;<=>?@ABCDEFGHI&$#J (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone?K emacs-module3Emacs environment, right from the 'emacs-module.h'.KLMNOKLMNO (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone'(./0>?P emacs-moduleHelper to retrieve number of arguments a function takes for Emacs.T 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.U emacs-module-End of argument list of an exported funciton.W emacs-module6All other arguments of an exported function as a list.Y 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.PQRSTUVWXYZ[\]_^]_^TRSPQ[\YZWXUV (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone  %3? h emacs-moduleA low-level error thrown when assumptions of this package are violated and it's not safe to proceed further.l emacs-module7A high-level error thrown when an Emacs function fails.q emacs-moduleError thrown to emacs by Haskell functions when anything goes awry.v 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.hijklmnopqrstuvwxyz{|}~vwxyzqrstu{lmnop|}hijk~ (c) Sergey Vinokurov 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNone .?2n" 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-module#Emacs value that is managed by the m" monad. Will be cleaned up after m finishes its execution. emacs-module;Type of values that Haskell functions may returns to Emacs. emacs-module Return an  back to Emacs. 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.NB if a non-local exit is alredy pending, this function will not overwrite it. In order to do that, use . emacs-moduleEquivalent to Emacs's throw function.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-module?Make value eligible for collection during next GC within Emacs. emacs-moduleMake Haskell function available as an anonymoucs Emacs function. In order to be able to use it later from Emacs it should be fed into  bindFunction.NB Each call to this function produces a small memory leak that will not be freed up. Hence, try not to create unbounded number of functions. This happens because GHC has to generate some wrapping code to convert between ccall and Haskell calling convention each time a function is exported. It is possible to free this code after function will not be used, but it's currently not supported. 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 and ignore its result. The function should be simple and must not call back into Haskell. 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 %funcallPrimitive [esym|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-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-module'Assign an element into an Emacs vector. emacs-moduleGet size of an Emacs vector. emacs-module.A Haskell functions that is callable by Emacs.This type differs from  in that it has an extra parameter which will result in an additional pointer being passed to this function when it's called by Emacs. Contents of the pointer is specified when function is exported to Emacs. 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/Extra data to be passed to the Haskell function 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.comNone %'(05>?6G 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.comNone?CD# emacs-module Assign a name to function value. emacs-moduleMake Haskell function available as an anonymoucs Emacs function. In order to be able to use it later from Emacs it should be fed into . This is a simplified version of . 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-moduleExtract string contents as  from an Emacs value. emacs-module*Convert a Text into an Emacs string value. emacs-moduleExtract string contents as  from an Emacs 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-module8Feed a value into a function and clean it up afterwards. emacs-module&Get all elements form an Emacs vector. emacs-moduleGet all elements form an Emacs vector using specific function to convert elements. emacs-moduleGet all elements form an Emacs vector using specific function to convert elements. 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-moduleExtract vanilla Emacs list as a reversed Haskell list. It's more efficient than  but doesn't preserve order of elements that was specified from Emacs side. 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 2018Apache-2.0 (see LICENSE)serg.foo@gmail.comNoneD;%'(UVWXYZ[\]_^hijklmnop>]_^[\YZWXUVlmnophijk('% !"#$%&'()*+,-./01234566789:;<=>?@ABCDDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc d e e f g h i j k l m n n o o p p q q r s t u v w x y z { | } } ~                                        I J K L M   P Q  R S T U      [  \    a b c  O.01>@+emacs-module-0.1.1.1-C4EeyV2Os1JLHvH0AMaocA Emacs.ModuleEmacs.Module.FunctionsData.Emacs.Module.Env.FunctionsData.Emacs.Module.NonNullPtrData.Emacs.Module.ValueData.Emacs.Module.SymbolNameData.Emacs.Module.SymbolName.THEmacs.Module.AssertData.Emacs.Module.EnvData.Emacs.Module.RuntimeData.Emacs.Module.ArgsEmacs.Module.ErrorsEmacs.Module.Monad.ClassEmacs.Module.Monad%Data.Emacs.Module.NonNullPtr.InternalData.Emacs.Module.Raw.Value%Data.Emacs.Module.SymbolName.Internal Data.Emacs.Module.Value.Internal"Data.Emacs.Module.Raw.Env.InternalData.Emacs.Module.Raw.Env.THData.Emacs.Module.Raw.Env Control.MonadSTexceptions-0.10.4Control.Monad.Catch MonadThrow MonadMask4safe-exceptions-checked-0.1.0-28lBqD9M1SoH6mKuFKyAdHControl.Exception.Safe.CheckedThrows FuncallExitFuncallExitReturnFuncallExitSignalFuncallExitThrowfuncallExitToNumfuncallExitFromNum$fEqFuncallExit$fOrdFuncallExit$fShowFuncallExit$fDataFuncallExit$fGenericFuncallExit$fLiftLiftedRepFuncallExit$fFunctorFuncallExit$fFoldableFuncallExit$fTraversableFuncallExit NonNullPtr unNonNullPtrRawValue SymbolName mkSymbolNamemkSymbolNameShortByteStringuseSymbolNameAsCStringesymValue valuePayloadvalueReleaseHandle WithCallStack emacsAssert mkNonNullPtr allocaNonNullallocaBytesNonNull RawFunctionRawFunctionTypeEnv exportToEmacsUserPtrFinaliserUserPtrFinaliserTypeEnumFuncallExitunEnumFuncallExit isValidEnv makeGlobalRef freeGlobalRefnonLocalExitChecknonLocalExitGetnonLocalExitSignalnonLocalExitThrownonLocalExitClearvariadicFunctionArgs makeFunctionfuncallfuncallPrimitiveinterntypeOfisNotNileqextractInteger makeInteger extractFloat makeFloatcopyStringContents makeString makeUserPtr getUserPtr setUserPtrgetUserFinalisersetUserFinaliservecGetvecSetvecSizefreeStablePtrFinaliserRuntime unRuntimevalidateRuntimegetEnvironment GetAritiesaritiesEmacsInvocationsupplyEmacsArgs EmacsArgsStopRestORNatZS $fNatValueS $fNatValueZ$fEmacsInvocationSoptrest$fEmacsInvocationZSrest$fEmacsInvocationZZTrue$fEmacsInvocationZZFalse$fGetAritiesreqoptTrue$fGetAritiesreqoptFalseEmacsInternalErroremacsInternalErrMsgemacsInternalErrStack EmacsError emacsErrMsg emacsErrData emacsErrStack UserErroruserErrFunctionName userErrMsg userErrStack EmacsThrow emacsThrowTagemacsThrowValuereportEmacsThrowToEmacs mkUserError mkEmacsErrorreportErrorToEmacsmkEmacsInternalErrorreportInternalErrorToEmacsformatSomeExceptionreportAnyErrorToEmacsreportAllErrorsToEmacs$fExceptionEmacsThrow$fShowEmacsThrow$fPrettyUserError$fExceptionUserError$fPrettyEmacsError$fExceptionEmacsError$fPrettyEmacsInternalError$fExceptionEmacsInternalError$fShowEmacsInternalError$fShowEmacsError$fShowUserError MonadEmacsEmacsRef EmacsReturn produceRef freeValuemakeFunctionExtrafuncallPrimitive_extractWideIntegermakeWideInteger extractDouble makeDouble extractStringextractUserPtr assignUserPtrextractUserPtrFinaliserassignUserPtrFinaliserEmacsFunctionExtra EmacsFunctionEmacsM runEmacsM$fMonadEmacsTYPEEmacsM$fMonadBaseControlIOEmacsM$fMonadResourceEmacsM$fFunctorEmacsM$fApplicativeEmacsM $fMonadEmacsM$fMonadIOEmacsM$fMonadThrowEmacsM$fMonadCatchEmacsM$fMonadMaskEmacsM$fMonadBaseIOEmacsM$fMonadFixEmacsM bindFunctionprovidemakeUserPtrFromStablePtrextractStablePtrFromUserPtr extractIntmakeInt extractTextmakeTextextractShortByteStringmakeShortByteString extractBoolmakeBool withCleanup extractVectorextractVectorWithextractUnboxedVectorWith makeVectorvconcat2conscarcdrnilsetcarsetcdrmakeList extractListextractListWithextractListRevWithfoldlEmacsListWithunfoldEmacsListWith addFaceProp propertizeconcat2 valueToText symbolName GlobalRef unGlobalRef unRawValue unSymbolName unRawFunctionunEnvtoPtrtemplate-haskellLanguage.Haskell.TH.SyntaxSafetyUnsafeSafe Interruptible wrapEmacsFuncCBooleanisTruthyghc-prim GHC.TypesBoolInt text-1.2.3.2Data.Text.InternalTextbytestring-0.10.10.0Data.ByteString.Short.InternalShortByteString