!;hA      !"#$%&'()*+,-./0123456789:;<=>?@NoneDfuzzyset'Opaque fuzzy string set data type. Use , , or  to create s.fuzzyset'Type alias for representing gram sizes.fuzzysetA ! with the following field values: { gramSizeLower = 2 , gramSizeUpper = 3 , useLevenshtein = True , exactSet =  , matchDict =  , items =  }fuzzysetSee .    None `ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"#$%&'()%&"'#$)(NoneD$*fuzzysetNormalize the input by?removing non-word characters, except for spaces and commas; and.converting alphabetic characters to lowercase.+fuzzysetReturn n! characters starting from offset m in the input string.,fuzzysetInsert the character ch. at the beginning and end of the input string.-fuzzysetReturns the euclidian norm, or  magnitude:, of the input list interpreted as a vector. That is,  \sqrt{ \sum_{i=0}^n a_i^2 }  for the input & \langle a_0, a_1, \dots, a_n \rangle  where  a_i  is the element at position i in the input list..fuzzysetCReturn the normalized Levenshtein distance between the two strings./fuzzyset (<$$>) = fmap " fmap0fuzzyset Empty HashMap+fuzzysetLength of the substringfuzzysetA character offset mfuzzysetThe input stringfuzzysetA substring of length n*+,-./0.,*-+0/None"#>D<4fuzzyset!Normalize the input string, call 5@ on the normalized input, and then translate the result to a  with the n-grams as keys and ^ values corresponding to the number of occurences of the key in the generated gram list.gramMap "xxxx" 2'fromList [("-x",1), ("xx",3), ("x-",1)]oData.HashMap.Strict.lookup "nts" (gramMap "intrent'srestaurantsomeoftrent'saunt'santswantsamtorentsomepants" 3)Just 85fuzzyset7Break apart the normalized input string into a list of n-grams. For instance, the string "Destroido Corp." is first normalized into the form "destroido corp", and then enclosed in hyphens, so that it becomes "-destroido corp-". The 30-grams generated from this normalized string are `"-de", "des", "est", "str", "tro", "roi", "oid", "ido", "do ", "o c", " co", "cor", "orp", "rp-"$Given a normalized string of length s&, we take all substrings of length n , letting the offset range from 0 \text{ to } s + 2 " n. The number of n)-grams for a normalized string of length s is thus s + 2 " n + 1 = s " n + 3, where  0 < n < s " 2.4fuzzysetAn input stringfuzzysetThe gram size n, which must be at least 2fuzzysetA mapping from nN-gram keys to the number of occurrences of the key in the list returned by 5 (i.e., the list of all n5-length substrings of the input enclosed in hyphens).5fuzzysetAn input stringfuzzyset The variable n, which must be at least 2fuzzysetA k-length list of grams of size n , with  k = s " n + 31234512345(c) 2017 Johannes HildnBSD3hildenjohannes@gmail.com experimentalGHCNone"#Dh 6fuzzyset Initialize a .7fuzzysetTry to match the given string against the entries in the set, and return a list of all results with a score greater than or equal to the specified minimum score (i.e., the first argument). The results are ordered by similarity score, with the closest match first.8fuzzysetTry to match the given string against the entries in the set, using a minimum score of 0.33. Return a list of results ordered by similarity score, with the closest match first.9fuzzysetoTry to match the given string against the entries in the set, and return the closest match, if one is found.:fuzzysetmAdd an entry to the set, or do nothing if a key identical to the provided value already exists in the set.;fuzzyset}Add an entry to the set and return a pair with the new set, and a boolean to indicate if a new entry was inserted, or not.<fuzzyset-Add a list of entries to the set, in one go. addMany = foldr (flip add)=fuzzyset;Create a fuzzy string set with entries from the given list. fromList = addMany defaultSet>fuzzyset(Return the number of entries in the set.)size (defaultSet `add` "map" `add` "cap")2?fuzzyset>Return a boolean indicating whether the provided set is empty.isEmpty (fromList [])True@fuzzysetReturn the elements of the set.Svalues (fromList ["bass", "craze", "space", "lace", "daze", "haze", "ace", "maze"]):["space","daze","bass","maze","ace","craze","lace","haze"]6fuzzyset0The lower bound of gram sizes to use (inclusive)fuzzyset0The upper bound of gram sizes to use (inclusive)fuzzysetWhether to use  lhttps://people.cs.pitt.edu/~kirk/cs1501/Pruhs/Spring2006/assignments/editdistance/Levenshtein%20Distance.htmLevenshtein distance to determine the scorefuzzysetAn empty fuzzy string set 7fuzzysetA minimum scorefuzzyset2The fuzzy string set to compare the string againstfuzzysetThe lookup queryfuzzyset1A list of results (score and matched value pairs)8fuzzyset2The fuzzy string set to compare the string againstfuzzysetThe lookup queryfuzzyset1A list of results (score and matched value pairs)9fuzzyset2The fuzzy string set to compare the string againstfuzzysetThe lookup queryfuzzyset- the result, if a match was found, otherwise :fuzzyset$Fuzzy string set to add the entry tofuzzyset The new entryfuzzysetThe updated set;fuzzyset$Fuzzy string set to add the entry tofuzzyset The new entryfuzzyset-The updated set and a boolean, which will be ; if, and only if, the value was not already in the set <fuzzyset&Fuzzy string set to add the entries tofuzzysetA list of new entriesfuzzysetA new fuzzy string set6789:;<=>?@6=:;<879>?@        !"#$%&'()*+,-./0123456789:;<=>?@ABCDECDFCGHCGICGJCKLCKMCNOCNOCNPCQRCQRCQSCTUCVWXYZXY[XY\XY]^_`^_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^_{^_|^_}^_~^_^_^_^_^_^_^_^_^_^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^ ^ ^^^^^^^^^^^^^^^^^^^ ^^!^^"^#$^#%^#&^#'^#(^#)^#*^#*^#+^#,^-.^-/^-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^YZ^Y[^Y\^Y]^Y^^Y_^Y`^Ya^Yb^Yc^Yd^Ye^Yf^Yg^Yh^Yi^Yj^Yk^Yl^Ym^Yn^Yo^Yp^Yq^Yr^Ys^Yt^Yu^Yv^Yw^Yx^Yy^Yz^Y{^Y|^Y}^Y~^Y^Y^Y^Y^Y^Y^Y^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^ ^ ^^^^^^^^^^^^^^^^^^^ ^!^"^#^$^%^&^'^(^)^*^+^,^-^.^/^0^1^2^3^4^5^6^7^8^9^:^;^<^=^>^?^@^A^B^C^D^E^FG^FH^FI^FJ^FK^FL^FM^FN^FO^FP^FQ^FR^FS^FT^FU^FV^FW^FX^FY^FZ^[\^[]^[^^[_^[`^[a^[b^[c^de^df^dg^dh^di^dj^dk^dl^dm^dn^do^dp^dq^dr^ds^dt^du^dv^dw^dx^dy^dz^{|^{}^{~^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^ ^ ^^^^^^^^^^^^^^^^^^ ^!^"^#^$^%^&^'^(^)^*^+^,^-^.^/^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[^UV^U_^UW^UX^UY^Ug^UZ^U[^U\^Uc^U]^U^^U_^U`^Ua^Ub^Uc^Uw^Ud^U{^Ue^Uf^Ug^U^Uh^Ui^Uj^U^Uk^Ul^Um^Un^Uk^Un^Uo^Uq^Ut^Up^Uq^Ur^Us^Ut^Uu^Uv^Uw^Ux^Uy^Uz^U{^U|^U}^U~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^XXXCC$fuzzyset-0.1.1-QNNzXtvHuj3X5Qtnmsm9zData.FuzzySet.TypesData.FuzzySet.LensData.FuzzySet.UtilData.FuzzySet.Internal Data.FuzzySet defaultSetmkSetfromList GetContextkeyminScoresetFuzzySet gramSizeLower gramSizeUpperuseLevenshteinexactSet matchDictitemsItemMap MatchDictExactSetSizeGramInfo itemIndex gramCount FuzzySetItemvectorMagnitudenormalizedEntry$fDefaultFuzzySet$fEqFuzzySetItem$fShowFuzzySetItem $fEqGramInfo$fShowGramInfo $fEqFuzzySet$fShowFuzzySet$fShowGetContext _exactSet_gramSizeLower_gramSizeUpper_items _matchDict_useLevenshtein_normalizedEntry_vectorMagnitude normalizedsubstr enclosedInnormdistance<$$>εgetMatchresultsmatchesgramMapgramsgetWithMinScoregetgetOneaddaddToSetaddManysizeisEmptyvaluesbaseData.Traversable TraversabletraverseData.Functor.Contravariant Contravariant contramap>$Data.Bifunctor BifunctorbimapData.Functor.IdentityIdentity runIdentityData.Functor.ConstConstgetConst Data.Function& Data.Functor<&>&profunctors-5.4-Kse9HaHa5S1EXc1du6bQhtData.Profunctor.Unsafe Profunctorrmaplmapdimap"lens-4.17.1-GjSMQ2I3MoU63aIbR3DWuiControl.Lens.THdefaultFieldRulesmakeFieldsNoPrefix makeFieldsabbreviatedNamerabbreviatedFieldsclassUnderscoreNoPrefixNamerclassUnderscoreNoPrefixFieldscamelCaseNamercamelCaseFieldsunderscoreNamerunderscoreFields makeWrappeddeclareLensesWith declareFieldsdeclareWrapped declarePrismsdeclareClassyFor declareClassydeclareLensesFor declareLensesmakeLensesWith makeClassyFor makeLensesFor makeClassy_ makeClassy makeLenses classyRules_ classyRules mappingNamerlookingupNamer lensRulesForunderscoreNoPrefixNamer lensRules lensClass lensField createClassgenerateLazyPatternsgenerateUpdateableOpticsgenerateSignatures simpleLensesControl.Lens.Internal.FieldTH LensRules FieldNamerDefNameTopName MethodName ClassyNamerControl.Lens.Internal.PrismTHmakeClassyPrisms makePrismsControl.Lens.AtiatsansixAtiix icontainsIndexContainscontainsIxValueIxedixAtatControl.Lens.EachEacheachControl.Lens.Platedgplate1gplateparts composOpFoldparaparaOf holesOnOfholesOnholes contextsOnOf contextsOn contextsOfcontextstransformMOnOf transformMOf transformMOn transformM transformOnOf transformOf transformOn transform cosmosOnOfcosmosOncosmosOfcosmos universeOnOf universeOn universeOfuniverse rewriteMOnOf rewriteMOn rewriteMOfrewriteM rewriteOnOf rewriteOn rewriteOfrewritechildrendeep...PlatedplateGPlatedGPlated1Control.Lens.ZoomZoomed MagnifiedZoomzoomMagnifymagnifyControl.Lens.Wrappedalafala _Unwrapping _Wrapping _Unwrapping' _Wrapping'op _Unwrapped_Wrapped _Unwrapped' _GWrapped'Wrapped Unwrapped _Wrapped' Rewrapped RewrappingControl.Lens.Consunsnocsnoc|>_last_init_tail_headunconscons<|:<:>Cons_ConsSnoc_SnocControl.Lens.EmptyEmptyAsEmpty_EmptyControl.Lens.Isocoerced secondingfirsting bimappingrmappinglmapping dimapping contramappingimagmamagma involutedreversedlazyflipped uncurriedcurriedanonnon'nonmappingenumunderaufaucloneIsowithIsofromisoStrictLazySwappedReversedListAnIsoAnIso'swappedstrictControl.Lens.EqualitysimplesimplyfromEqmapEqsubstEqrunEq Identical AnEquality AnEquality'Control.Lens.Indexed itraverseByOf itraverseBy ifoldMapByOf ifoldMapBy imapAccumL imapAccumRiforMimapMiforitoListifoldlMifoldrMifind iconcatMapiforM_imapM_ifor_ itraverse_noneinoneiallianyindexindicesicompose<.> reindexed selfIndex.><.FunctorWithIndeximapimappedFoldableWithIndexifoldMapifoldedifoldrifoldlifoldr'ifoldl'TraversableWithIndex itraverse itraversedControl.Lens.Reified ReifiedLensLensrunLens ReifiedLens'ReifiedIndexedLens IndexedLensrunIndexedLensReifiedIndexedLens'ReifiedIndexedTraversalIndexedTraversalrunIndexedTraversalReifiedIndexedTraversal'ReifiedTraversal Traversal runTraversalReifiedTraversal' ReifiedGetterGetter runGetterReifiedIndexedGetter IndexedGetterrunIndexedGetter ReifiedFoldFoldrunFoldReifiedIndexedFold IndexedFoldrunIndexedFold ReifiedSetterSetter runSetterReifiedSetter'ReifiedIndexedSetter IndexedSetterrunIndexedSetterReifiedIndexedSetter' ReifiedIsoIsorunIso ReifiedIso' ReifiedPrismPrismrunPrism ReifiedPrism'Control.Lens.LevelilevelslevelsControl.Lens.Traversal sequenceByOf traverseByOf confusingdeepOffailing ifailoverfailoverelements elementsOfelement elementOfignored traversed64 traversed1 traversed imapAccumLOf imapAccumROfiforMOfimapMOfiforOf itraverseOfcloneIndexedTraversal1cloneIndexPreservingTraversal1cloneTraversal1cloneIndexedTraversalcloneIndexPreservingTraversalcloneTraversaldroppingtakingbesideboth1bothholes1OfholesOfunsafeSingularsingulariunsafePartsOf'unsafePartsOf'iunsafePartsOf unsafePartsOf ipartsOf'partsOf'ipartsOfpartsOfilocilociscanl1Ofscanr1Of mapAccumLOf mapAccumROf transposeOf sequenceOfforMOfmapMOf sequenceAOfforOf traverseOf ATraversal ATraversal' ATraversal1 ATraversal1'AnIndexedTraversalAnIndexedTraversal1AnIndexedTraversal'AnIndexedTraversal1' Traversing Traversing1 Traversing' Traversing1' TraverseMin traverseMin TraverseMax traverseMaxControl.Lens.Fold foldMapByOffoldByOfidroppingWhile itakingWhile ifiltered findIndicesOf findIndexOf elemIndicesOf elemIndexOf^@?!^@?^@.. itoListOf ifoldlMOf ifoldrMOf ifoldlOf' ifoldrOf'ifindMOfifindOf iconcatMapOfiforMOf_imapMOf_iforOf_ itraverseOf_inoneOfiallOfianyOfifoldlOfifoldrOf ifoldMapOf backwardsipreusespreusesipreusepreuse ipreviewspreviewsipreviewpreviewipreprehasn'thasfoldlMOffoldrMOf foldl1Of' foldr1Of'foldlOf'foldrOf'foldl1Offoldr1OflookupOffindMOffindOf minimumByOf maximumByOf minimum1Of minimumOf maximum1Of maximumOf notNullOfnullOflast1OflastOffirst1OffirstOf^?!^?lengthOfconcatOf concatMapOf notElemOfelemOfmsumOfasumOf sequenceOf_forMOf_mapMOf_ sequence1Of_for1Of_ traverse1Of_ sequenceAOf_forOf_ traverseOf_sumOf productOfnoneOfallOfanyOforOfandOf^.. toNonEmptyOftoListOffoldlOffoldrOffoldOf foldMapOflinedworded droppingWhile takingWhilefilterediteratedunfoldedcycled replicatedrepeatedfolded64folded ifoldringfoldringifoldingfoldingControl.Lens.Prism_Shownearlyonly_Void_Nothing_Just_Right_Leftmatchingisn'tbelowasidewithoutoutsideprism'prism clonePrism withPrismAPrismAPrism'Control.Lens.Reviewreusesreusereviews#reviewreununtoControl.Lens.Gettergetting^@.iusesiuseiviewsiview ilistenings listenings ilistening listeningusesuse^.viewsviewilikelikeitotoGettingIndexedGetting AccessingControl.Lens.Tuple_19'_18'_17'_16'_15'_14'_13'_12'_11'_10'_9'_8'_7'_6'_5'_4'_3'_2'_1'Field1_1Field2_2Field3_3Field4_4Field5_5Field6_6Field7_7Field8_8Field9_9Field10_10Field11_11Field12_12Field13_13Field14_14Field15_15Field16_16Field17_17Field18_18Field19_19Control.Lens.Lensfusinguniteddevoid<#=<#~#%%=<#%=<#%~#%=#=#%%~#%~#~storing^#<<%@=<%@=%%@=%%@~<<%@~<%@~overA<<>=<<>~<<~<<<>=<<&&=<<||=<<**=<<^^=<<^=<~<<&&~<<||~<<**~<<^^~<<^~<=<>~