!b       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz { | } ~                                                                                Safe!d{optparse-applicativeOCalculate the Damerau-Levenshtein edit distance between two lists (strings).This is modified from  &https://wiki.haskell.org/Edit_distance[ and is originally from Lloyd Allison's paper "Lazy Dynamic-Programming can be Eager"It's been changed though from Levenshtein to Damerau-Levenshtein, which treats transposition of adjacent characters as one change instead of two.{{Safe!{  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnorqpszyxwvut|{  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnorqpszyxwvut|Safe?m }optparse-applicativeThe free monoid on a semigroup a.optparse-applicativeGiven a semigroup structure on a), return a monoid structure on 'Chunk a'.Note that this is not the same as  .optparse-applicative"Concatenate a list into a Chunk.  satisfies: >isEmpty . listToChunk = null listToChunk = mconcat . fmap pureoptparse-applicative'Part of a constrained comonad instance.-This is the counit of the adjunction between }F and the forgetful functor from monoids to semigroups. It satisfies: 6extractChunk . pure = id extractChunk . fmap pure = idoptparse-applicativeConcatenate two }Ns with a space in between. If one is empty, this just returns the other one.Unlike b for s7, this operation has a unit element, namely the empty }.optparse-applicativeConcatenate two }5s with a softline in between. This is exactly like ), but uses a softline instead of a space.optparse-applicative Concatenate } s vertically.optparse-applicative Concatenate }&s vertically separated by empty lines.optparse-applicative Whether a }q is empty. Note that something like 'pure mempty' is not considered an empty chunk, even though the underlying s is empty.optparse-applicative Convert a  into a }. This satisfies: @isEmpty . stringChunk = null extractChunk . stringChunk = stringoptparse-applicativeConvert a paragraph into a }. The resulting chunk is composed by the words of the original paragraph separated by softlines, so it will be automatically word-wrapped when rendering the underlying document.This satisfies: "isEmpty . paragraph = null . wordsoptparse-applicative$Display pairs of strings in a table.}~}~Safe@optparse-applicativeConvert a help text to . SafeCQV}2optparse-applicative6Whether this is part of a many or some (approximately)optparse-applicative'Whether this option has a default valueoptparse-applicativefIf the result is a positional, if it can't be accessed in the current parser position ( first arg )optparse-applicative1Policy for how to handle options within the parseoptparse-applicativeGThe default policy, options and arguments can be interspersed. A `--`S option can be passed to ensure all following commands are treated as arguments.optparse-applicativeOptions must all come before arguments, once a single positional argument or subcommand is parsed, all remaining arguments are treated as positionals. A `--`G option can be passed if the first positional one needs starts with .optparse-applicativegNo options are parsed at all, all arguments are treated as positionals. Is the policy used after `--` is encountered.optparse-applicativeOptions and arguments can be interspersed, but if a given option is not found, it is treated as a positional argument. This is sometimes useful if one is passing through most options to another tool, but are supplying just a few of their own options.optparse-applicative Result of execParserPure.optparse-applicativeA shell complete function.optparse-applicativeA Parser a/ is an option parser returning a value of type a.optparse-applicativeAn < defines whether an option matches an command line argument.optparse-applicative option readeroptparse-applicative flag readeroptparse-applicativeargument readeroptparse-applicativecommand readeroptparse-applicative?A newtype over 'ReaderT String Except', used by option readers.optparse-applicative"Subparser context, containing the name of the subparser, and its parser info. Used by parserFailure to display relevant usage information when parsing inside a subparser fails.optparse-applicativeA single option of a parser.optparse-applicativereader for this optionoptparse-applicativeproperties of this optionoptparse-applicative.Specification for an individual parser option.optparse-applicative3whether this flag is shown is the brief descriptionoptparse-applicativehelp text for this optionoptparse-applicativemetavariable for this optionoptparse-applicative,what to show in the help text as the defaultoptparse-applicative,a function to run over the brief descriptionoptparse-applicative)Visibility of an option in the help text.optparse-applicative'does not appear in the help text at alloptparse-applicative$only visible in the full descriptionoptparse-applicative/visible both in the full and brief descriptionsoptparse-applicative#Global preferences for a top-level .optparse-applicative#metavar suffix for multiple optionsoptparse-applicative:automatically disambiguate abbreviations (default: False)optparse-applicative7always show help text on parse errors (default: False)optparse-applicativeZshow the help text for a command or subcommand if it fails with no input (default: False)optparse-applicativeCbacktrack to parent parser when a subcommand fails (default: True)optparse-applicativeNnumber of columns in the terminal, used to format the help page (default: 80)optparse-applicative"A full description for a runnable  for a program.optparse-applicative!the option parser for the programoptparse-applicative8whether the help text should contain full documentationoptparse-applicativebrief parser descriptionoptparse-applicative%header of the full parser descriptionoptparse-applicative%footer of the full parser descriptionoptparse-applicativeexit code for a parser failureoptparse-applicativeVallow regular options and flags to occur after arguments (default: InterspersePolicy)optparse-applicativeReturn the value being read.optparse-applicative&Abort option reader by exiting with a .optparse-applicative5Abort option reader by exiting with an error message. optparse-applicativeSmart constructor for a y     y     Safe{ >?@ABCDEFGHIJKLMNOPQRSTU ABCDEFGHMJKNOL@PI?QR>TSUSafeQVVsoptparse-applicative,Create a parser composed of a single option.toptparse-applicativeApply a  to a command line, and return a result and leftover arguments. This function returns an error if any parsing error occurs, or if any options are missing and don't have a default value.woptparse-applicativeThe default value of a T. This function returns an error if any of the options don't have a default value.xoptparse-applicative`Map a polymorphic function over all the options of a parser, and collect the results in a list.yoptparse-applicativeLike x., but collect the results in a tree structure.qrstuvwxysquvtwxyr Safev optparse-applicativeStyle for rendering an option.optparse-applicative)Generate description for a single option.zoptparse-applicative#Generate descriptions for commands.{optparse-applicative(Generate a brief help text for a parser.|optparse-applicative[Generate a brief help text for a parser, only including mandatory options and arguments.optparse-applicativeiGenerate a brief help text for a parser, allowing the specification of if optional arguments are show.~optparse-applicative'Generate a full help text for a parser.optparse-applicative%Generate the help text for a program.optparse-applicativeGenerate option summary.z{|}~z{|}~SafeT  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnorqpszyxwvut{|}~z{|}~ Safeoptparse-applicativeAn option modifier.ZOption modifiers are values that represent a modification of the properties of an option.The type parameter a) is the return type of the option, while f. is a record containing its properties (e.g.  for regular options,  for flags, etc...).*An option modifier consists of 3 elements:A field modifier, of the form  f a -> f a\. These are essentially (compositions of) setters for some of the properties supported by f.5An optional default value and function to display it.!A property modifier, of the form OptProperties -> OptPropertiesX. This is just like the field modifier, but for properties applicable to any option.Modifiers are instances of , and can be composed as such.{One rarely needs to deal with modifiers directly, as most of the times it is sufficient to pass them to builders (such as  strOption or flag) to create options (see ).optparse-applicativeBase default properties.optparse-applicative#Hide this option from the help text optparse-applicative$$ Safe,optparse-applicative Create a  from an IO actionoptparse-applicative Create a " from a constant list of strings.optparse-applicative Run a compgen completion action.Common actions include file and  directory. See  xhttp://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html#Programmable-Completion-Builtins for a complete list.optparse-applicative-Strongly quote the string we pass to compgen.We need to do this so bash doesn't expand out any ~ or other chars we want to complete on, or emit an end of line error when seeking the close to the quote.  Safe/6optparse-applicative Modifier for .optparse-applicative reader based on the  type class.optparse-applicativeString  reader.Polymorphic over the  type class since 0.14.optparse-applicative Convert a function producing an  into a reader.LAs an example, one can create a ReadM from an attoparsec Parser easily with import qualified Data.Attoparsec.Text as A import qualified Data.Text as T attoparsecReader :: A.Parser a -> ReadM a attoparsecReader p = eitherReader (A.parseOnly p . T.pack)optparse-applicativeConvert a function producing a  into a reader.optparse-applicativeNull , reader. All arguments will fail validation.optparse-applicative#Specify a short name for an option.optparse-applicative"Specify a long name for an option.optparse-applicative&Specify a default value for an option.Noteb: Because this modifier means the parser will never fail, do not use it with combinators such as  or b, as these combinators continue until a failure occurs. Careless use will thus result in a hang.KTo display the default value, combine with showDefault or showDefaultWith.optparse-applicative;Specify a function to show the default value for an option.optparse-applicative1Show the default value for this option using its  instance.optparse-applicative$Specify the help text for an option.optparse-applicative)Specify the help text for an option as a  value.optparse-applicativeISpecify the error to display when no argument is provided to this option.optparse-applicative(Specify a metavariable for the argument.Metavariables have no effect on the actual parser, and only serve to specify the symbolic name for an argument to be displayed in the help text.optparse-applicative,Hide this option from the brief description.optparse-applicative=Apply a function to the option description in the usage text. Bimport Options.Applicative.Help flag' () (short 't' <> style bold)NOTE: This builder is more flexible than its name and example allude. One of the motivating examples for its addition was to used 3 to completely replace the usage text of an option.optparse-applicative$Add a command to a subparser option.PSuggested usage for multiple commands is to add them to a single subparser. e.g. sample :: Parser Sample sample = subparser ( command "hello" (info hello (progDesc "Print greeting")) <> command "goodbye" (info goodbye (progDesc "Say goodbye")) ) optparse-applicative)Add a description to a group of commands.MAdvanced feature for separating logical groups of commands on the parse line.If using the same V for each group of commands, it may yield a more attractive usage text combined with  for some groups.optparse-applicative)Add a list of possible completion values.optparse-applicative5Add a bash completion action. Common actions include file and  directory. See  xhttp://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html#Programmable-Completion-Builtins for a complete list.optparse-applicativeAdd a completer to an argument.A completer is a function String -> IO String which, given a partial argument, returns all possible completions for that argument.optparse-applicative"Builder for a command parser. The 6 modifier can be used to specify individual commands.optparse-applicativeBuilder for an argument parser.optparse-applicativeBuilder for a  argument.optparse-applicativeBuilder for a flag parser.tA flag that switches from a "default value" to an "active value" when encountered. For a simple boolean value, use  instead.NoteT: Because this parser will never fail, it can not be used with combinators such as  or =, as these combinators continue until a failure occurs. See flag'.optparse-applicative2Builder for a flag parser without a default value.Same as _, but with no default value. In particular, this flag will never parse successfully by itself.IIt still makes sense to use it as part of a composite parser. For example &length <$> many (flag' () (short 't'))Xis a parser that counts the number of "-t" arguments on the command line, alternatively 3flag' True (long "on") <|> flag' False (long "off")will require the user to enter '--on' or '--off' on the command line.optparse-applicativeBuilder for a boolean flag.NoteT: Because this parser will never fail, it can not be used with combinators such as  or =, as these combinators continue until a failure occurs. See flag'. switch = flag False Trueoptparse-applicativeAn option that always fails.When this option is encountered, the option parser immediately aborts with the given parse error. If you simply want to output a message, use  instead.optparse-applicative3An option that always fails and displays a message.optparse-applicativeBuilder for an option taking a  argument.optparse-applicativeSame as .optparse-applicative-Builder for an option using the given reader.:This is a regular option, and should always have either a long or short+ name specified in the modifiers (or both). 4nameParser = option str ( long "name" <> short 'n' )optparse-applicative8Show a full description in the help text of this parser.optparse-applicative>Only show a brief description in the help text of this parser.optparse-applicative!Specify a header for this parser.optparse-applicative&Specify a header for this parser as a  value.optparse-applicative!Specify a footer for this parser.optparse-applicative&Specify a footer for this parser as a  value.optparse-applicative$Specify a short program description.optparse-applicative)Specify a short program description as a  value.optparse-applicative-Specify an exit code if a parse error occurs.optparse-applicative>Disable parsing of regular options after arguments. After a positional argument is parsed, all remaining options and arguments will be treated as a positional arguments. Not recommended in general as users often expect to be able to freely intersperse regular options and flags within command line options.optparse-applicativeIntersperse matched options and arguments normally, but allow unmatched options to be treated as positional arguments. This is sometimes useful if one is wrapping a third party cli tool and needs to pass options through, while also providing a handful of their own options. Not recommended in general as typos by the user may not yield a parse error and cause confusion.optparse-applicative Create a  given a  and a modifier.optparse-applicativeQInclude a suffix to attach to the metavar when multiple values can be entered.optparse-applicativeTurn on disambiguation.See Ahttps://github.com/pcapriotti/optparse-applicative#disambiguationoptparse-applicative!Show full help text on any error.optparse-applicativeMShow the help text if the user enters only the program name or subcommand.vThis will suppress a "Missing:" error and show the full usage instead if a user just types the name of the program.optparse-applicative1Turn off backtracking after subcommand is parsed.optparse-applicative1Set the maximum width of the generated help text.optparse-applicative Create a  given a modifieroptparse-applicativeTrivial option modifier.optparse-applicativeDefault preferences.optparse-applicative default valueoptparse-applicative active valueoptparse-applicativeoption modifieroptparse-applicative active valueoptparse-applicativeoption modifierMM Safe6optparse-applicative)Provide basic or rich command completionsoptparse-applicative+Add no help descriptions to the completionsoptparse-applicativeInclude tab separated description for options and commands when available. Takes option description length and command description length. SafeQVR; optparse-applicative,A hidden "helper" option which always fails.GA common usage pattern is to apply this applicatively when creating a  Aopts :: ParserInfo Sample opts = info (sample <**> helper) memptyoptparse-applicativeWBuilder for a command parser with a "helper" option attached. Used in the same way as 4, but includes a "--help|-h" inside the subcommand.optparse-applicativeRun a program description.TParse command line arguments. Display help text and exit if any parse error occurs.optparse-applicative2Run a program description with custom preferences.optparse-applicativeHandle .optparse-applicative!Extract the actual result from a  value.This function returns  Y in case of errors. Possible error messages or completion actions are simply discarded.XIf you want to display error messages and invoke completion actions appropriately, use  instead.optparse-applicative'Run a program description in pure code.This function behaves like ~, but can be called from pure code. Note that, in case of errors, no message is displayed, and this function simply returns  .1If you need to keep track of error messages, use  instead.optparse-applicative?Run a program description with custom preferences in pure code.See  for details.optparse-applicative?The most general way to run a program description in pure code.optparse-applicative Generate a  from a  in a given .KThis function can be used, for example, to show the help text for a parser: LhandleParseResult . Failure $ parserFailure pprefs pinfo ShowHelpText memptyoptparse-applicative"Global preferences for this parseroptparse-applicative!Description of the program to runoptparse-applicativeProgram arguments  SafeSa!"#$% &'()*+,-./0123456789:    Safeaoptparse-applicative1The type of arrows associated to the applicative  functor.optparse-applicativeFor any " functor f, A f is the ; instance associated to f.The 4 constructor can be used to convert a value of type  f (a -> b) into an arrow. optparse-applicativeConvert a value of type f a into an arrow taking () as argument.Applied to a value of type f, it turns it into an arrow that can be used inside an arrow command, or passed to arrow combinators. optparse-applicative.Convert an arrow back to an applicative value.5This function can be used to return a result of type  from an arrow command.&<=>?@A;BCDEFGHIJKLMNOPQRSTUVWXYZ    [ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                           ! "#$%&'()*+*,*-*.*/*0*1*2*2*3454546789:;<O=>?>@>A>B>C>D>E>F>G>H>I>J>K>K>L>M>N>O>z>P>Q>R>S>T>U>V>W>W>X>YZ[Z\]4optparse-applicative-0.14.3.0-Fg9YS0QwIgx5vbvAE4R5hvOptions.Applicative.BuilderOptions.Applicative.Help.Pretty$Options.Applicative.Help.LevenshteinOptions.Applicative.Help.ChunkOptions.Applicative.Help.TypesOptions.Applicative.TypesOptions.Applicative.InternalOptions.Applicative.CommonOptions.Applicative.Help.Core$Options.Applicative.Builder.Internal%Options.Applicative.Builder.Completer"Options.Applicative.BashCompletionOptions.Applicative.ExtraOptions.Applicative.ArrowsOptions.Applicative.HelpOptions.ApplicativeBuilderText.PrettyPrint.ANSI.LeijenDocbaseGHC.Basemappend-ansi-wl-pprint-0.6.8.2-LQZDE7SKgje91HGB8abfY4%Text.PrettyPrint.ANSI.Leijen.InternalhPutDocputDoc displayIOdisplayS renderCompact renderSmart renderPrettyplain deunderline underlinedeboldbold ondullwhiteonwhite ondullcyanoncyan ondullmagenta onmagenta ondullblueonblue ondullyellowonyellow ondullgreenongreen ondullredonred ondullblackonblack dullwhitewhitedullcyancyan dullmagentamagentadullblueblue dullyellowyellow dullgreengreendullredred dullblackblackflatAltgroupnestingcolumnnesthardline linebreaklinetextcharemptyalignhangindentwidthfill fillBreakrationaldoublefloatintegerintboolstringequals backslashdotspacecommacolonsemidquotesquoterbracketlbracketrbracelbraceranglelanglerparenlparenenclosebracketsanglesparensbracesdquotessquotes softbreaksoftline<$$><+>vcathcatfillCatcatvsephsepfillSepsep punctuate encloseSep semiBracestupledlist prettyListprettyPrettySSGRSLineSTextSCharSEmptySFail SimpleDoc editDistance.$.ChunkunChunk mappendWithchunked listToChunk extractChunk<<+>><> vcatChunks vsepChunksisEmpty stringChunk paragraphtabulate$fMonadPlusChunk $fMonoidChunk$fSemigroupChunk $fMonadChunk$fAlternativeChunk$fApplicativeChunk$fFunctorChunk $fEqChunk $fShowChunk ParserHelp helpErrorhelpSuggestions helpHeader helpUsagehelpBody helpFooter renderHelp$fSemigroupParserHelp$fMonoidParserHelp$fShowParserHelpOptTreeLeafMultNodeAltNode OptHelpInfo hinfoMulti hinfoDefaulthinfoUnreachableArgs ArgPolicy Intersperse NoIntersperseAllPositionalsForwardOptionsArgs ParserResultSuccessFailureCompletionInvoked ParserFailure execFailureCompletionResultexecCompletion Completer runCompleterParserM runParserMParserNilPOptPMultPAltPBindP OptReader FlagReader ArgReader CmdReaderCReader crCompletercrReaderReadMunReadMContext SomeParserOptionoptMainoptProps OptPropertiespropVisibilitypropHelp propMetaVarpropShowDefault propDescMod OptVisibilityInternalHiddenVisibleOptNameOptShortOptLong ParserPrefsprefMultiSuffixprefDisambiguateprefShowHelpOnErrorprefShowHelpOnEmpty prefBacktrack prefColumns ParserInfo infoParser infoFullDesc infoProgDesc infoHeader infoFooterinfoFailureCode infoPolicy IsCmdStartCmdStartCmdCont ParseErrorErrorMsgInfoMsg ShowHelpText UnknownError MissingErrorExpectsArgErrorUnexpectedError readerAsk readerAbort readerErrorfromMoneMmanyMsomeM mkCompleter overFailure optVisibilityoptHelp optMetaVaroptShowDefault optDescMod$fShowOptProperties$fMonoidCompleter$fSemigroupCompleter$fShowCompletionResult$fFunctorParserFailure$fShowParserFailure$fMonadParserResult$fApplicativeParserResult$fFunctorParserResult$fAlternativeParser$fApplicativeParser$fFunctorParser$fFunctorOptReader$fFunctorCReader$fMonadPlusReadM$fMonadFailReadM $fMonadReadM$fAlternativeReadM$fApplicativeReadM$fFunctorReadM$fFunctorOption $fShowOption$fFunctorParserInfo$fSemigroupParseError$fMonoidParseError$fApplicativeParserM$fFunctorParserM$fMonadParserM$fShowIsCmdStart$fEqParserPrefs$fShowParserPrefs $fEqOptName $fOrdOptName $fShowOptName$fEqOptVisibility$fOrdOptVisibility$fShowOptVisibility$fShowParserResult $fEqArgPolicy$fOrdArgPolicy$fShowArgPolicy$fEqOptHelpInfo$fShowOptHelpInfo $fShowOptTreeNondetTListT CompletionPMonadP enterContext exitContextgetPrefs missingArgPerrorPexitP contextNames hoistMaybe hoistEitherrunPunconsrunReadM withReadM runCompletion takeListTrunListTcutdisamb $fMonadPP $fMonadPlusP$fMonadP$fAlternativeP$fApplicativeP $fFunctorP$fMonadComplResult$fApplicativeComplResult$fFunctorComplResult$fMonadPCompletion$fMonadPlusCompletion$fMonadCompletion$fAlternativeCompletion$fApplicativeCompletion$fFunctorCompletion$fMonadPlusListT$fMonadTransListT$fAlternativeListT $fMonadListT$fApplicativeListT$fFunctorListT$fMonadTransNondetT$fAlternativeNondetT$fMonadPlusNondetT$fMonadNondetT$fApplicativeNondetT$fFunctorNondetT showOption optionNamesliftOpt runParser runParserInforunParserFully evalParser mapParser treeMapParsercmdDesc briefDesc missingDesc fold_treefullDesc errorHelp headerHelpsuggestionsHelp usageHelpbodyHelp footerHelp parserHelp parserUsageMod DefaultProp HasMetavarhasMetavarDummyHasValue hasValueDummy HasCompleter modCompleterHasNamenameArgumentFields argCompleter CommandFields cmdCommandscmdGroup FlagFields flagNames flagActive OptionFieldsoptNames optCompleter optNoArgError optionModfieldMod baseProps mkCommandmkParsermkOptionmkPropsinternal$fHasNameFlagFields$fHasNameOptionFields$fHasCompleterArgumentFields$fHasCompleterOptionFields$fHasValueArgumentFields$fHasValueOptionFields$fHasMetavarCommandFields$fHasMetavarArgumentFields$fHasMetavarOptionFields$fSemigroupDefaultProp$fMonoidDefaultProp$fSemigroupMod $fMonoidModlistIOCompleter listCompleter bashCompleterPrefsModInfoModautostr eitherReader maybeReaderdisabledshortlongvalueshowDefaultWith showDefaulthelphelpDoc noArgErrormetavarhiddenstylecommand commandGroup completeWithaction completer subparserargument strArgumentflagflag'switch abortOption infoOption strOption nullOptionoptionheader headerDocfooter footerDocprogDesc progDescDoc failureCode noIntersperseforwardOptionsinfo multiSuffix disambiguateshowHelpOnErrorshowHelpOnEmpty noBacktrackcolumnsprefsidm defaultPrefs$fSemigroupInfoMod$fMonoidInfoMod$fSemigroupPrefsMod$fMonoidPrefsModbashCompletionParser $fEqRichness $fOrdRichness$fShowRichnesshelper hsubparser execParsercustomExecParserhandleParseResultgetParseResultexecParserMaybecustomExecParserMaybeexecParserPure parserFailure renderFailureParserAAunAasArunA$fArrowA$fCategoryTYPEAliftA2StringGHC.Num- OptDescStyleoptDesc briefDesc'MonoidrequoteGHC.ReadRead Data.StringIsString Data.EitherEitherMaybesomemanyGHC.ShowShowconstRichnessStandardEnrichedNothing<$ Applicativepure<*>*><*Control.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListData.Functor.ConstConstgetConst Data.Functor<$>liftA3liftA<**> Alternative<|> Control.ArrowArrowleftApp^<<<<^>>^^>>returnAarrfirstsecond***&&&Kleisli runKleisli ArrowZero zeroArrow ArrowPlus ArrowChoice|||+++leftright ArrowApplyapp ArrowMonad ArrowLooploopControl.Category>>><<<