h&Ki+      !"#$%&'()*Provides fuzzy matching on textUnison Computing, 2021MITrunar.bjarnason@unison.cloud experimental Safe-Inferred"#(;/ fuzzyfindConcatenating all the )s should yield the original input string. fuzzyfindAn  is a   together with a %. Better results have higher scores.  fuzzyfindbestMatch query string will return + if query is not a subsequence of string. Otherwise, it will return the "best" way to line up the characters in query with the characters in string . Lower-case characters in the query are assumed to be case-insensitive, and upper-case characters are assumed to be case-sensitive. For example: > bestMatch "ff" "FuzzyFind" Just (Alignment {score = 25, result = Result {[Match "F", Gap "uzzy", Match "F", Gap "ind"]}}) The score indicates how "good" the match is. Better matches have higher scores. There's no maximum score (except for the upper limit of the ,% datatype), but the lowest score is 0.+A substring from the query will generate a <, and any characters from the input that don't result in a  will generate a . Concatenating all the  and 1 results should yield the original input string.Note that the matched characters in the input always occur in the same order as they do in the query pattern.The algorithm prefers (and will generate higher scores for) the following kinds of matches: :Contiguous characters from the query string. For example, bestMatch "pp"0 will find the last two ps in "pickled pepper".4Characters at the beginnings of words. For example, bestMatch "pp". will find the first two Ps in "Peter Piper".,Characters at CamelCase humps. For example, bestMatch "bm" "BatMan" will score higher than bestMatch "bm" "Batman".The algorithm strongly prefers the first character of the query pattern to be at the beginning of a word or CamelHump. For example, bestMatch "mn" "Bat Man" will score higher than bestMatch "atn" "Batman".All else being equal, matches that occur later in the input string are preferred.  fuzzyfindFinds input strings that match all the given input patterns. For each input that matches, it returns one '. The output is not sorted. ascending. For example: > import Data.Foldable > traverse_ (putStrLn . ("\n" ++) . highlight) $ fuzzyFind ["dad", "mac", "dam"] ["red macadamia", "Madam Card"] Madam Card * *** ** * red macadamia * *******  fuzzyfind A version of  3 that searches on the given text field of the data. fuzzyfind,The base score given to a matching character fuzzyfind.The base score given to a mismatched character fuzzyfindBonus points given to characters matching at the beginning of words fuzzyfindBonus points given to characters matching a hump of a CamelCase word. We subtract a point from the word boundary score, since a word boundary will incur a gap penalty. fuzzyfindDouble any bonus points for matching the first pattern of the character. This way we strongly prefer starting the match at the beginning of a word. fuzzyfindWe prefer consecutive runs of matched characters in the pattern, so we impose a penalty for any gaps, which is added to the size of the gap. fuzzyfindWe give a bonus to consecutive matching characters. A number about the same as the boundary bonus will prefer runs of consecutive characters vs finding acronyms. fuzzyfindWe give a bonus for matches that occur later in the input string. If this is e.g. 100, we give one bonus point for each percentage of the length of the input that the match occurs at (100 points for the last character, 50 for characters in the middle, and so on). fuzzyfind Renders an  as a pair of lines with "*" on the lower line indicating the location of pattern matches. fuzzyfind!A highly configurable version of  .  fuzzyfindThe query pattern. fuzzyfindThe input string.  fuzzyfindThe query patterns. fuzzyfindThe input strings.  fuzzyfind)Base score for a matching character. See . fuzzyfind+Base score for a mismatched character. See . fuzzyfind"Additional penalty for a gap. See . fuzzyfind8Bonus score for a match at the beginning of a word. See . fuzzyfind1Bonus score for a match on a CamelCase hump. See . fuzzyfindBonus multiplier for matching the first character of the pattern. See . fuzzyfind;Bonus score for each consecutive character matched. See . fuzzyfindBonus multiplier for matching later characters of the input. E.g. if this is 10, the bonus for matching the last character of the input is 10, and 5 for characters close to the middle, and so on. fuzzyfindThe query pattern.  fuzzyfindThe input string.    -      !"#$%&'()*+,-./01&fuzzyfind-3.0.1-ABkDKmgDRISLGHbodtw9fxText.FuzzyFindResultsegments ResultSegmentGapMatch AlignmentscoreresultScore bestMatch fuzzyFind fuzzyFindOndefaultMatchScoredefaultMismatchScoredefaultBoundaryBonusdefaultCamelCaseBonusdefaultFirstCharBonusMultiplierdefaultGapPenaltydefaultConsecutiveBonusdefaultLaterBonusMultipliersegmentToString highlight highlight' bestMatch' mergeResults$fSemigroupResult$fMonoidResult$fMonoidAlignment$fSemigroupAlignment $fEqAlignment$fOrdAlignment$fShowAlignment$fGenericAlignment $fEqResult $fOrdResult $fShowResult$fGenericResult$fEqResultSegment$fOrdResultSegment$fShowResultSegment$fGenericResultSegmentbase GHC.MaybeNothingghc-prim GHC.TypesInt