Ξυ³h$ τ ‰      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ Safe-Inferred`‰Š‹ŒŽNone  >ΐΑΒΞ›=    !"#$%&(')*+,-./0123546789:;<=23541./0+,-*)%&('"#$ !   6789:;<None #$8<=ΖΞΩε?NOPQRTUSVWXYZ\[]^_`abcdefghefghcd`ab]^_YZ\[VWXQRTUSNOPHaskell bindings to the  https://bellard.org/quickjs/QuickJS library(c) Samuel Balco, 2020MITgoodlyrottenapple@gmail.comNone ?Ω ί‚ quickjs-hs)Evaluates the given string and returns a ‘" (if the result can be converted).ƒ quickjs-hsMore efficient than ‚³ if we don't care about the value of the expression, e.g. if we are evaluating a function definition or performing other side-effects such as printing to console/modifying state.… quickjs-hsTakes a value with a defined ToJSON) instance. This value is marshalled to a 2Ψ and passed as an argument to the callback function, provided as the second argument to …‡ quickjs-hsβThis function initialises a new JS runtime and performs the given computation within this context.+For example, we can evaluate an expression: 5quickjs $ do res <- eval "1+2" liftIO $ print res.Declare a function and call it on an argument: Τquickjs $ do _ <- eval_ "f = (x) => x+1" res <- eval "f(2)" liftIO $ print res'Pass a Haskell value to the JS runtime: ςquickjs $ do _ <- eval_ "f = (x) => x+1" res <- withJSValue (3::Int) $ \x -> call "f" [x] liftIO $ print resˆ quickjs-hsThis env differs from regular ‡*, in that it wraps the computation in the ’Ώ function. This is needed when running the Haskell program mutithreaded (e.g. when using the testing framework Tasty), since quickjs does not like being called from an OS thread other than the one it was started in. Because Haskell uses lightweight threads, this might happen if threaded mode is enabled, as is the case in Tasty. This problem does not occur when running via Main.hs, if compiled as single threaded... For more info see the paper 2https://simonmar.github.io/bib/papers/conc-ffi.pdfΑExtending the Haskell Foreign Function Interface with Concurrency 2‚ƒ„…†‡ˆ 2‡ˆ†‚ƒ…„“      !"#$%&&'(()*+,--.//01223456789:;<=>?@ABCDEFGHIJKLMMNOOPQRSSTUUVWXXYZZ[\\]]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽquickjs-hs-0.1-inplace Quickjs.Types Quickjs.ErrorQuickjsPaths_quickjs_hs JSGPNMask unJSGPNMask JSEvalTypeGlobalModule JSTypeEnum JSTypeFromTag JSIsNumber JSIsArrayJSIsDate JSIsError JSTagEnum JSTagFirstJSTagBigDecimal JSTagBigInt JSTagBigFloat JSTagSymbol JSTagString JSTagModuleJSTagFunctionBytecode JSTagObjectJSTagInt JSTagBool JSTagNullJSTagUndefinedJSTagUninitializedJSTagCatchOffsetJSTagException JSTagFloat64 FromCType fromCTypeToCTypetoCTypeJSRefCountHeader ref_countJSPropertyEnum is_enumerableatomJSAtomJSBool JSContext_unusedContext JSRuntime_unusedRuntime JSValueConstJSValueutagjsGPNStringMaskjsGPNSymbolMaskjsGPNPrivateMask jsGPNEnumOnly jsGPNSetEnum quickjsCtxquickjsTypesTable$fStorableJSValue$fStorableJSPropertyEnum$fStorableJSRefCountHeader$fFromCTypeJSTagEnuma$fToCTypeJSTagEnuma$fToCTypeJSEvalTypea $fEqJSGPNMask$fBitsJSGPNMask$fShowJSTypeEnum$fShowJSTagEnum $fEqJSTagEnum$fShowJSRefCountHeader$fEqJSRefCountHeader$fShowJSPropertyEnum$fEqJSPropertyEnum $fShowJSValue $fEqJSValue InternalError$sel:message:InternalErrorJSValueIncorrectType$sel:name:JSValueIncorrectType"$sel:expected:JSValueIncorrectType$sel:found:JSValueIncorrectTypeJSValueUndefined$sel:value:JSValueUndefined JSException$sel:location:JSException$sel:message:JSExceptionUnsupportedTypeTag$sel:_tag:UnsupportedTypeTag UnknownJSTag$sel:raw_tag:UnknownJSTagJSRuntimeExceptionSomeJSRuntimeExceptionjsRuntimeExceptionToExceptionjsRuntimeExceptionFromException $fToJSONCLong!$fExceptionSomeJSRuntimeException$fShowSomeJSRuntimeException$fExceptionJSRuntimeException$fShowUnknownJSTag$fShowUnsupportedTypeTag$fShowJSException$fShowJSValueUndefined$fShowJSValueIncorrectType$fShowInternalError$fGenericInternalError$fExceptionInternalError$fGenericJSValueIncorrectType$fExceptionJSValueIncorrectType$fGenericJSValueUndefined$fExceptionJSValueUndefined$fGenericJSException$fExceptionJSException$fGenericUnsupportedTypeTag$fExceptionUnsupportedTypeTag$fGenericUnknownJSTag$fExceptionUnknownJSTag$fGenericJSRuntimeException$fShowJSRuntimeException JSContextPtrevaleval_ fromJSValue_ withJSValuecallquickjsquickjsMultithreadedversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamesn-1.4.7.1-13900f36Data.Aeson.Types.InternalValuebaseControl.ConcurrentrunInBoundThread