h$x"      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred Safe-InferredLNone  pcre2"...string lengths and offsets into strings of code units...are always of type  PCRE2_SIZE...currently always defined as size_t." pcre2"The SPTR/ types are constant pointers to the equivalent UCHAR types, that is, they are pointers to vectors of unsigned code units." pcre2"The UCHAR types define unsigned code units of the appropriate widths. For example,  PCRE2_UCHAR16 is usually defined as uint16_t."rpcre2May be returned by e.pcre2!See below for possible bit flags.pcre2 Array of 2 ( PCRE2_SIZE[2])pcre2("Missing low surrogate at end of string"pcre2."Invalid low surrogate follows high surrogate"pcre2"Isolated low surrogate"pcre2 custom mallocpcre2 custom freepcre2See below for possible values.pcre2See below for possible values.pcre29See "Extra compile options" below for possible bit flags.pcre2Can be unset. See below.(pcre2See below for possible values.pcre2/See the C API docs for what gets returned here.<pcre2#Can be zero-terminated. See below.pcre28See "Main compile options" below for possible bit flags.epcre2!See below for possible bit flags.jpcre2See below for possible values.pcre2$See below for possible error values.qpcre2subjectpcre2lengthpcre2 startoffsetpcre2optionspcre2namepcre2firstpcre2lastpcre2subjectpcre2lengthpcre2 startoffsetpcre2!See below for possible bit flags.pcre2ovecsizepcre2subjectpcre2lengthpcre2 startoffsetpcre2optionspcre2 workspacepcre2wscountpcre2namepcre2 bufferptrpcre2bufflenpcre2namepcre2bufferpcre2bufflenpcre2namepcre2lengthpcre2namepcre2listptrpcre2 lengthsptrpcre2namepcre2 bufferptrpcre2bufflenpcre2numberpcre2bufferpcre2bufflenpcre2numberpcre2lengthpcre2subjectpcre2lengthpcre2 startoffsetpcre2optionspcre2 replacementpcre2rlength pcre2 outputbuffer pcre2 outlengthptrpcre2codespcre2number of codespcre2serialized bytespcre2serialized sizepcre2codespcre2number of codespcre2bytes  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  '&%$#"! ,+*)(-./0123456789:;=BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdfeghirqponmlkjstuvwxyz{|}~None#$5b=pcre2PCRE2 compile exceptions. Along with a message stating the cause, we show the pattern with a cursor pointing at where the error is (if not after the last character).pcre2Vanilla PCRE2 exceptions with messages generated by the underlying C library.pcre2*The root of the PCRE2 exception hierarchy.pcre2A function that takes a C match result and extracts captures into a container. We need to pass this effectful callback to ? because of the latter's imperative loop that reuses the same pcre2_match_data block. ...pcre2Like 9, but for a function of two arguments. Currently unused.pcre2Like ;, but for a function of three arguments. Currently unused.pcre2Zero-copy slice a ). An unset capture is represented by a ,- range and is interpreted in this library as .pcre2Like  , but encode , as .pcre2Slice a , copying if it's less than half of the original. Note this is a lazy, pure operation.pcre2Like %, but only produce a result when not , . It is forced when the outer  constructor is forced.pcre2Safe, type-restricted .pcre2Safe, type-restricted .pcre2A more general  that collects targets into any .pcre2%Effectfully transform yielded values.pcre2Unsafely, lazily tear down a  into a pure list of values yielded. The stream must be infinite in the sense of it only terminating due to explicit .pcre2 C to Haskell.pcre2 Haskell to C.pcre2 C to Haskell.pcre2 Haskell to C.pcre2An  can result in multiple "plans".pcre2 Use a fake Prism'" to extract a category of options.pcre2Prepare to compile a .pcre2 Compile a .pcre2;Prepare a matching function after compiling the underlying  pcre2_code.pcre2Generate, from user-supplied s and pattern, a 2 that can be reused for matching or substituting.pcre2A 6 is sufficient to fully implement a matching function.pcre2-Helper to generate public matching functions.pcre2A  works by first writing results to a reasonably-sized buffer. If we run out of room, PCRE2 allows us to simulate the rest of the substitution without writing anything, in order to calculate how big the buffer actually has to be. In this event, we rerun the substitution with a new, exactly-sized buffer.One potential issue arising from two attempts is running effectful callouts twice. We mitigate this by skipping callouts the second time:all regular callouts, since they had run during the simulation, and8those substitution callouts that had run the first time.Therefore, the first time, log the substitution callout indexes that had run along with their results, and replay the log the second time, returning those same results without re-incurring effects.pcre2Helper to generate substitution function. For consistency with .pcre2Generate per-call data for  pcre2_match() etc., to accommodate callouts.We need to save and inspect state that occurs in potentially concurrent matches. This means a new state ref for each match, which means a new > to close on it, which means a new match context to set it to.pcre23Within a callout, marshal the original subject and pcre2_callout_block data to Haskell and present to the user function. Ensure no pointers are leaked!pcre2Within a substitution callout, marshal the original subject and pcre2_substitute_callout_block data to Haskell and present to the user function. Ensure no pointers are leaked!pcre2=If there was a callout and it threw an exception, rethrow it.pcre2The most general form of a matching function, which can also be used as a Setter'/ to perform substitutions at the Haskell level.pcre2Read all specifically indexed captures' offsets from match results.pcre27Read just the 0th capture's offsets from match results.pcre2.Read all captures' offsets from match results.pcre2Placeholder for building a ` to be passed to .pcre2Match a pattern to a subject and return some non-empty list(s) of captures in an , or / if no match. The non-empty list constructor  serves as a cue to differentiate the 0th capture from the others: let parseDate = captures "(\\d{4})-(\\d{2})-(\\d{2})" in case parseDate "submitted 2020-10-20" of Just (date :| [y, m, d]) -> ... Nothing -> putStrLn "didn't match"pcre2 capturesOpt mempty = capturespcre21Does the pattern match the subject at least once?pcre2 matchesOpt mempty = matchespcre2Match a pattern to a subject and return the portion(s) that matched in an , or  if no match.pcre2 matchOpt mempty = matchpcre2(Perform at most one substitution. See  5https://pcre.org/current/doc/html/pcre2api.html#SEC36the docs for the special syntax of  replacement.sub "(\\w+) calling the (\\w+)" "$2 calling the $1" "the pot calling the kettle black"""the kettle calling the pot black"pcre2Perform substitutions globally.!gsub "a" "o" "apples and bananas""opples ond bononos"pcre2 ,subOpt mempty = sub subOpt SubGlobal = gsub pcre2Given a pattern, produce a traversal (0 or more targets) that focuses from a subject to each non-empty list of captures that pattern matches.Substitution works in the following way: If a capture is set such that the new  is not equal to the old one, a substitution occurs, otherwise it doesn't. This matters in cases where a capture encloses another capture@notably, all0 parenthesized captures are enclosed by the 0th.$threeAndMiddle = _captures ". (.) .","A A A" & threeAndMiddle .~ "A A A" :| ["B"]"A B A","A A A" & threeAndMiddle .~ "A B A" :| ["A"]"A B A"Changing multiple overlapping captures won't do what you want and is unsupported.Changing an unset capture is unsupported because the PCRE2 match API does not give location info about it. Currently we ignore all such attempts. (Native substitution functions like ) do not have this limitation. See also  and .)If the list becomes longer for some reason, the extra elements are ignored. If it's shortened, the absent elements are considered to be unchanged.?It's recommended that the list be modified capture-wise, using . let madlibs = _captures "(\\w+) my (\\w+)" print $ "Well bust my buttons!" &~ do zoom madlibs $ do ix 1 . _head .= 'd' ix 2 %= Text.reverse _last .= '?' -- "Well dust my snottub?"pcre2 _capturesOpt mempty = _capturespcre2Given a pattern, produce a traversal (0 or more targets) that focuses from a subject to the non-overlapping portions of it that match.Equivalent to  patt .  0, but more efficient.pcre2 _matchOpt mempty = _matchpcre29Built-in message corresponding to the integer error code.pcre2!Most PCRE2 C functions return an int indicating a possible error. Test it against a predicate, and throw an exception upon failure.pcre26Helper for getting PCRE2 compile-time config integers.pcre25Helper for getting PCRE2 compile-time config strings.pcre2See .pcre2Which code widths PCRE2 is compiled to operate on. Can be any combination of 8, 16, and 32. Should be [8]$ but provided here for completeness.pcre2See .pcre2See .pcre2!Was PCRE2 built with JIT support?pcre2A nice description of the CPU architecture JIT support is compiled for, if any.pcre2>Number of bytes used for internal linkage in compiled regexes.pcre2See .pcre2See .pcre2See .pcre2See .pcre2>Size in bytes of PCRE2's built-in character processing tables.pcre2Unicode version string such as 8.0.0!, if Unicode is supported at all.pcre2%Was PCRE2 built with Unicode support?pcre2Version of the built-in C library. The versioning scheme is that PCRE legacy is 8.x and PCRE2 is 10.x, so this should be 10. something.pcre25Callout info requires access to the original subject.pcre2patternpcre2 replacementpcre2subjectpcre2resultNone./upcre2Look up the number of a capture at compile time, either by number or by name. Throw a helpful  if the index doesn't exist.pcre2 The kind of 's info. The first number is the total number of parenthesized captures, and the list is a lookup table from capture names to numbers.pcre2A wrapper around a list of captures that carries additional type-level information about the number and names of those captures.,This type is only intended to be created by / and consumed by /-, relying on type inference. Specifying the info explicitly in a type signature is not supported@the definition of > is not part of the public API and may change without warning.After obtaining  it's recommended to immediately consume them and transform them into application-level data, to avoid leaking the types.pcre2Safely lookup a capture in a  result obtained from a Template Haskell-generated matching function.7The ugly type signature may be interpreted like this: Given some capture  group index i and some info, about a regex, ensure that index exists and is resolved to the number num* at compile time. Then, at runtime, get a capture group (numbered num) from a list of (at least num ) captures.In practice the variable i is specified by type application and the other variables are inferred. capture @3 capture @"bar"Specifying a nonexistent number or name will result in a type error.pcre2Like  but focus from a  to a capture.pcre2Unexported, top-level  that's created upon the first runtime evaluation of a Template Haskell .pcre2&Given a pattern, create or retrieve a  from the global cache.pcre2From options and pattern, determine parenthesized captures' names in order.pcre2+Get parenthesized captures' names in order.pcre28Low-level access to compiled pattern info, per the docs.pcre2Predict parenthesized captures (maybe named) of a pattern at splice time.pcre2Get the indexes of  the named captures.pcre23Generate the data-kinded phantom type parameter of  of a pattern, if needed.pcre2 Helper for  with no parenthesized captures.pcre2 Helper for  with parenthesized captures.pcre2 Helper for  as a guard pattern.pcre2 Helper for ) as a pattern that binds local variables.pcre2 Helper for  with no parenthesized captures.pcre2 Helper for  with parenthesized captures.pcre2As an expression  regex :: ( f) => String -> Text -> f ( info) -in the presence of parenthesized captures, or 4regex :: (Alternative f) => String -> Text -> f Textif there are none. In other words, if there is more than the 0th capture, this behaves like  (except returning an opaque  instead of a " list), otherwise it behaves like .)To retrieve an individual capture from a , use . case [regex|(?\d{4})-(?\d{2})-(?\d{2})|] "submitted 2020-10-20" of Just cs -> let date = capture @0 cs year = read @Int $ Text.unpack $ capture @"y" cs ... forM_ ([regex|\s+$|] line :: Maybe Text) $ \spaces -> error $ "line has trailing spaces (" ++ show (Text.length spaces) ++ " characters)" As a patternThis matches when the regex first matches, whereupon any named captures are bound to variables of the same names. case "submitted 2020-10-20" of [regex|(?\d{4})-(?\d{2})-(?\d{2})|] -> let year = read @Int $ Text.unpack y ...Note that it is not possible to access the 0th capture this way. As a workaround, explicitly capture the whole pattern and name it. ` Text (0 info) _regex :: String -> Traversal' Text Text embeddedNumbers :: Traversal' String Int embeddedNumbers = packed . [_regex|\d+|] . unpacked . _Show main :: IO () main = putStrLn $ "There are 14 competing standards" & embeddedNumbers %~ (+ 1) -- There are 15 competing standardspcre2Nonev Nonew        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"pcre2-2.2.1-41xRwn5KevLE5UPsBjIVdbText.Regex.Pcre2.ForeignText.Regex.Pcre2Text.Regex.Pcre2.Unsafe Paths_pcre2Text.Regex.Pcre2.Foreign.THText.Regex.Pcre2.InternalText.Regex.Pcre2.THmatchPcre2_callout_enumerate_blockPcre2_match_dataPcre2_jit_stack Pcre2_codePcre2_substitute_callout_blockPcre2_callout_blockPcre2_match_contextPcre2_compile_contextPcre2_general_context PCRE2_SIZE PCRE2_SPTR PCRE2_UCHARpcre2_compile_context_freepcre2_compile_context_copypcre2_compile_context_createpcre2_general_context_freepcre2_general_context_copypcre2_general_context_create pcre2_set_bsrpcre2_ERROR_BADDATApcre2_BSR_ANYCRLFpcre2_set_newlinepcre2_set_max_pattern_lengthpcre2_set_compile_extra_optionspcre2_set_character_tablespcre2_BSR_UNICODEpcre2_NEWLINE_CRpcre2_NEWLINE_LFpcre2_NEWLINE_CRLFpcre2_NEWLINE_ANYpcre2_NEWLINE_ANYCRLFpcre2_set_offset_limitpcre2_set_substitute_calloutpcre2_set_calloutpcre2_match_context_freepcre2_match_context_copypcre2_match_context_create!pcre2_set_compile_recursion_guardpcre2_set_parens_nest_limitpcre2_NEWLINE_NUL pcre2_configpcre2_set_depth_limitpcre2_set_match_limitpcre2_set_heap_limit pcre2_UNSETpcre2_CONFIG_BSRpcre2_CONFIG_COMPILED_WIDTHSpcre2_CONFIG_DEPTHLIMITpcre2_CONFIG_HEAPLIMITpcre2_CONFIG_JITpcre2_CONFIG_JITTARGETpcre2_CONFIG_LINKSIZEpcre2_CONFIG_MATCHLIMITpcre2_CONFIG_NEWLINEpcre2_CONFIG_NEVER_BACKSLASH_Cpcre2_CONFIG_PARENSLIMITpcre2_CONFIG_STACKRECURSEpcre2_CONFIG_TABLES_LENGTHpcre2_CONFIG_UNICODE_VERSIONpcre2_CONFIG_UNICODE pcre2_compilepcre2_CONFIG_VERSIONpcre2_code_copy_with_tablespcre2_code_copypcre2_code_freepcre2_ZERO_TERMINATEDpcre2_ANCHOREDpcre2_ALLOW_EMPTY_CLASSpcre2_ALT_BSUXpcre2_ALT_CIRCUMFLEXpcre2_ALT_VERBNAMESpcre2_AUTO_CALLOUTpcre2_CASELESSpcre2_DOLLAR_ENDONLY pcre2_DOTALLpcre2_DUPNAMESpcre2_ENDANCHOREDpcre2_EXTENDEDpcre2_EXTENDED_MOREpcre2_FIRSTLINE pcre2_LITERALpcre2_MATCH_INVALID_UTFpcre2_MATCH_UNSET_BACKREFpcre2_MULTILINEpcre2_NEVER_BACKSLASH_Cpcre2_NEVER_UCPpcre2_NEVER_UTFpcre2_NO_AUTO_CAPTUREpcre2_NO_AUTO_POSSESSpcre2_NO_DOTSTAR_ANCHORpcre2_NO_START_OPTIMIZEpcre2_NO_UTF_CHECK pcre2_UCPpcre2_UNGREEDYpcre2_USE_OFFSET_LIMIT pcre2_UTF#pcre2_EXTRA_ALLOW_SURROGATE_ESCAPESpcre2_EXTRA_ALT_BSUX!pcre2_EXTRA_BAD_ESCAPE_IS_LITERALpcre2_EXTRA_ESCAPED_CR_IS_LFpcre2_EXTRA_MATCH_LINEpcre2_jit_compilepcre2_EXTRA_MATCH_WORDpcre2_JIT_COMPLETEpcre2_JIT_PARTIAL_HARDpcre2_JIT_PARTIAL_SOFTpcre2_pattern_infopcre2_maketables_freepcre2_maketablespcre2_jit_stack_freepcre2_jit_stack_assignpcre2_jit_stack_createpcre2_jit_free_unused_memorypcre2_jit_matchpcre2_ERROR_JIT_BADOPTIONpcre2_INFO_ALLOPTIONSpcre2_INFO_ARGOPTIONSpcre2_INFO_EXTRAOPTIONSpcre2_INFO_BACKREFMAXpcre2_INFO_BSRpcre2_INFO_CAPTURECOUNTpcre2_INFO_DEPTHLIMITpcre2_INFO_FIRSTBITMAPpcre2_INFO_FIRSTCODETYPEpcre2_INFO_FIRSTCODEUNITpcre2_INFO_FRAMESIZEpcre2_INFO_HASBACKSLASHCpcre2_INFO_HASCRORLFpcre2_INFO_HEAPLIMITpcre2_INFO_JCHANGEDpcre2_INFO_JITSIZEpcre2_INFO_LASTCODETYPEpcre2_INFO_LASTCODEUNITpcre2_INFO_MATCHEMPTYpcre2_INFO_MATCHLIMITpcre2_INFO_MAXLOOKBEHINDpcre2_INFO_MINLENGTHpcre2_INFO_NAMECOUNTpcre2_INFO_NAMEENTRYSIZEpcre2_INFO_NAMETABLEpcre2_INFO_NEWLINEpcre2_INFO_SIZEpcre2_callout_enumeratepcre2_substring_nametable_scanpcre2_ERROR_UNSETpcre2_callout_block_version"pcre2_callout_block_callout_numberpcre2_callout_block_capture_top pcre2_callout_block_capture_last!pcre2_callout_block_callout_flagspcre2_CALLOUT_STARTMATCHpcre2_CALLOUT_BACKTRACK!pcre2_callout_block_offset_vectorpcre2_callout_block_markpcre2_callout_block_subject"pcre2_callout_block_subject_lengthpcre2_callout_block_start_match$pcre2_callout_block_current_position$pcre2_callout_block_pattern_position$pcre2_callout_block_next_item_length)pcre2_callout_block_callout_string_offset)pcre2_callout_block_callout_string_length"pcre2_callout_block_callout_string%pcre2_callout_enumerate_block_version.pcre2_callout_enumerate_block_pattern_position.pcre2_callout_enumerate_block_next_item_length,pcre2_callout_enumerate_block_callout_number3pcre2_callout_enumerate_block_callout_string_offset3pcre2_callout_enumerate_block_callout_string_length,pcre2_callout_enumerate_block_callout_string&pcre2_substitute_callout_block_version(pcre2_substitute_callout_block_subscount$pcre2_substitute_callout_block_input%pcre2_substitute_callout_block_output&pcre2_substitute_callout_block_ovector(pcre2_substitute_callout_block_oveccount pcre2_matchpcre2_match_data_free$pcre2_match_data_create_from_patternpcre2_match_data_create-pcre2_substitute_callout_block_output_offsetspcre2_COPY_MATCHED_SUBJECT pcre2_NOTBOL pcre2_NOTEOLpcre2_NOTEMPTYpcre2_NOTEMPTY_ATSTART pcre2_NO_JITpcre2_PARTIAL_HARDpcre2_PARTIAL_SOFTpcre2_ERROR_NOMATCHpcre2_ERROR_PARTIALpcre2_ERROR_BADMAGICpcre2_ERROR_BADMODEpcre2_ERROR_BADOFFSETpcre2_ERROR_BADOPTIONpcre2_ERROR_BADUTFOFFSETpcre2_ERROR_CALLOUTpcre2_ERROR_DEPTHLIMITpcre2_ERROR_HEAPLIMITpcre2_ERROR_INTERNALpcre2_ERROR_JIT_STACKLIMITpcre2_ERROR_MATCHLIMITpcre2_ERROR_NOMEMORYpcre2_ERROR_NULLpcre2_ERROR_UTF16_ERR1pcre2_ERROR_UTF16_ERR2pcre2_dfa_matchpcre2_ERROR_UTF16_ERR3pcre2_DFA_SHORTESTpcre2_DFA_RESTARTpcre2_ERROR_DFA_UFUNCpcre2_ERROR_DFA_UITEMpcre2_ERROR_DFA_UCONDpcre2_ERROR_DFA_UINVALID_UTFpcre2_ERROR_DFA_WSSIZEpcre2_ERROR_DFA_RECURSEpcre2_substring_freepcre2_substring_get_bynamepcre2_substring_copy_bynamepcre2_substring_length_byname pcre2_substring_number_from_namepcre2_substring_list_freepcre2_substring_list_getpcre2_substring_get_bynumberpcre2_substring_copy_bynumberpcre2_substring_length_bynumberpcre2_get_ovector_pointerpcre2_get_ovector_countpcre2_ERROR_DFA_BADRESTARTpcre2_ERROR_NOSUBSTRINGpcre2_ERROR_NOUNIQUESUBSTRINGpcre2_substitutepcre2_ERROR_UNAVAILABLE!pcre2_SUBSTITUTE_REPLACEMENT_ONLYpcre2_SUBSTITUTE_GLOBALpcre2_SUBSTITUTE_MATCHED pcre2_SUBSTITUTE_OVERFLOW_LENGTHpcre2_SUBSTITUTE_LITERALpcre2_SUBSTITUTE_UNKNOWN_UNSETpcre2_SUBSTITUTE_UNSET_EMPTYpcre2_SUBSTITUTE_EXTENDEDpcre2_ERROR_BADREPLACEMENTpcre2_ERROR_BADREPESCAPEpcre2_ERROR_BADSUBSTITUTION#pcre2_serialize_get_number_of_codespcre2_serialize_freepcre2_serialize_encodepcre2_serialize_decodepcre2_get_error_messagepcre2_get_startcharpcre2_get_markpcre2_ERROR_BADSUBSPATTERNpcre2_ERROR_BADSERIALIZEDDATApcre2_ERROR_MIXEDTABLESPcre2CompileExceptionPcre2ExceptionSomePcre2ExceptionSubCalloutResultSubCalloutAcceptSubCalloutSkipSubCalloutAbortSubCalloutInfosubCalloutSubsCountsubCalloutCapturessubCalloutSubjectsubCalloutReplacement CalloutResultCalloutProceedCalloutNoMatchHereCalloutNoMatch CalloutIndex CalloutNumber CalloutName CalloutAuto CalloutInfo calloutIndexcalloutCapturescalloutSubject calloutMarkcalloutIsFirstcalloutBacktrackedNewline NewlineCr NewlineLf NewlineCrlf NewlineAnyNewlineAnyCrlf NewlineNulBsr BsrUnicode BsrAnyCrlfOptionAllowEmptyClassAltBsux AltBsuxLegacy AltCircumflex AltVerbNamesAnchoredBadEscapeIsLiteralCaseless DepthLimit DollarEndOnlyDotAll EndAnchored EscapedCrIsLfExtended ExtendedMore FirstLine HeapLimitLiteral MatchLimit MatchLineMatchUnsetBackRef MatchWordMaxPatternLength MultilineNeverBackslashCNeverUcp NoAutoCapture NoAutoPossessNoDotStarAnchorNoStartOptimizeNotBolNotEmptyNotEmptyAtStartNotEol OffsetLimit ParensLimit PartialHard PartialSoft SubGlobal SubLiteralSubReplacementOnlySubUnknownUnset SubUnsetEmptyUcpUngreedyUnsafeCompileRecGuard UnsafeCallout AutoCalloutUnsafeSubCalloutcaptures capturesOptmatches matchesOptmatchOptsubgsubsubOpt _captures _capturesOpt_match _matchOpt defaultBsrcompiledWidthsdefaultDepthLimitdefaultHeapLimit supportsJit jitTargetlinkSizedefaultMatchLimitdefaultNewlinedefaultIsNeverBackslashCdefaultParensLimitdefaultTablesLengthunicodeVersionsupportsUnicode pcreVersionCapturescapture_captureregex_regexversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameconstantgetter FromMatch _gcapturesbaseData.Traversable TraversableGHC.BaseNonEmptyData.Functor.IdentityIdentity Data.ProxyProxy CalloutState)microlens-0.4.13.0-JXHewCkMLYOHQwws1DhDs9Lens.Micro.TypeLens MatchTempEnvMatchEnvCodeMatcherSubber CompileEnvcompileEnvERef ExtractOptsMonad AppliedOptionMonoidmempty NoOptions TwoOptions<>GHC.EnummaxBound GHC.IO.UnsafeunsafePerformIOStream StreamYield StreamEffect StreamStopwithForeignOrNullPtrForeign.ForeignPtr.ImpwithForeignPtr GHC.MaybeMaybe mkForeignPtrGHC.PtrPtrmkFunPtrFunPtrunchompedLines Data.OldListlinesfix1fix2fix3 thinSlicetext-2.0-3xHa7owDORE1bRFjNHQ1weData.Text.InternalTextemptymaybeThinSliceNothing smartSlicemaybeSmartSlicefromCUscastPtrtoCUstoAlternativeOf Lens.MicrotoListOf AlternativemapMSunsafeLazyStreamToListbsrFromCbsrToC newlineFromC newlineToC applyOption extractOptsOfextractCompileEnv extractCodeextractMatchEnv userMatchEnvmatcherWithEnvpureUserMatcher subberWithEnvpureUserSubbermkMatchTempEnvgetCalloutInfogetSubCalloutInfo maybeRethrowgetWhitelistedSlices get0thSlice getAllSlices getNoSlices Traversalhas:|Lens.Micro.InternalixgetErrorMessagecheckgetConfigNumericgetConfigStringcalloutStateExceptioncalloutStateSubsLogmatchTempEnvRefmatchTempEnvCtxmatchEnvSubCalloutmatchEnvCallout matchEnvCtx matchEnvOpts matchEnvCode compileEnvCtxMatchContextOptionSubCalloutOption CalloutOption MatchOptionCompileRecGuardOptionCompileContextOptionCompileExtraOption CompileOption MatchData MatchContextCompileContext StreamPureSlice FfiWrapper mkCalloutmkRecursionGuardbitOr _Identity streamYield_CompileOption_CompileExtraOption_CompileContextOption_CompileRecGuardOption _MatchOption_CalloutOption_SubCalloutOption_MatchContextOption_calloutStateException_calloutStateSubsLogCaptNum GHC.TypeLits TypeError CapturesInfoglobalMatcherCache GHC.IORefIORef memoMatcherpredictCaptureNamesgetCaptureNames getCodeInfopredictCaptureNamesQtoKVsJust capturesInfoQmatchTH capturesTH matchesTHcapturesNumberedTH_matchTH _capturesTH$fShowCaptures