Îõ³h$!þÇ‘      !"#$%&'()*+,-./0123456789 : ; < = > ? @ 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 [ \ ] ^ _ ` 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 { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž    Safe-Inferred‡    Safe-Inferred;bcp47$Ensure a subtag extends to the next ‘ or end of inputÏUsed for subtags that can match some prefix of another subtag. For example, a Script or Region2 can accidentally be parsed from the prefix of a Variant The alternative would be to use  notFollowedBy with knowledge of the legal characters in the next valid subtag. Safe-Inferred <ubcp47Extended language subtagsÊThese are used to identify certain specially selected languages that, for various historical and compatibility reasons, are closely identified with or tagged using an existing primary language subtag.bcp47Parse a  subtag from ’bcp47 BCP-47 language extension parser4This only implements the ISO 639 portion of the ISO.@ý extlang = 3ALPHA ; selected ISO 639 codes *2("-" 3ALPHA) ; permanently reserved @ Safe-Inferred ‰bcp47Parse a language subtag from ’bcp47BCP-47 language parser8This only implements the ISO 639 portion of the grammar.@É language = 2*3ALPHA ; shortest ISO 639 code ["-" extlang] ; sometimes followed by ; extended language subtags / 4ALPHA ; or reserved for future use / 5*8ALPHA ; or registered language subtag @   Safe-Inferred < Ëbcp47Extension subtagsÿExtensions provide a mechanism for extending language tags for use in various applications. They are intended to identify information that is commonly used in association with languages or language tags but that is not part of language identification.bcp47 Parse an  subtag from ’bcp47BCP-47 extension parser³@@ extension = singleton 1*("-" (2*8alphanum)) ; Single alphanumerics ; "x" reserved for private useãsingleton = DIGIT ; 0 - 9 / %x41-57 ; A - W / %x59-5A ; Y - Z / %x61-77 ; a - w / %x79-7A ; y - z @@ Safe-Inferred < +$bcp47Private Use subtagsþPrivate use subtags are used to indicate distinctions in language that are important in a given context by private agreement.'bcp47Parse a $ subtag from ’(bcp47BCP-47 private use parser@- privateuse = "x" 1*("-" (1*8alphanum)) @$%&'($%'&(None.bcp47Parse a region subtag from ’regionFromText $ pack "ZW"Right zimbabweregionFromText $ pack "012" Right algeriaregionFromText $ pack "asdf"ëLeft "regionFromText:1:1:\n |\n1 | asdf\n | ^\nunexpected 'a'\nexpecting 2 or 3 character country code\n"/bcp47BCP-47 region parser@í region = 2ALPHA ; ISO 3166-1 code / 3DIGIT ; UN M.49 code @-./-./ Safe-Inferred <t0bcp47Script subtagsScript subtags are used to indicate the script or writing system variations that distinguish the written forms of a language or its dialects.3bcp47Parse a 0 subtag from ’4bcp47BCP-47 script parser@9 script = 4ALPHA ; ISO 15924 code @0123401324  Safe-Inferred <'9bcp47Variant subtags¥Variant subtags are used to indicate additional, well-recognized variations that define a language or its dialects that are not covered by other available subtags.<bcp47BCP-47 variant parser@à variant = 5*8alphanum ; registered variants / (DIGIT 3alphanum) @=bcp47Parse a 9 subtag from ’9:;<=9:=;< None8<PBCDEFGHBCDEFGH None <à1Nbcp47A language tag¨Language tags are used to help identify languages, whether spoken, written, signed, or otherwise signaled, for the purpose of communication. This includes constructed and artificial languages but excludes languages not intended primarily for human communication, such as programming languages.Obcp47The language subtagPbcp47 Serialize N to ’ŠSubtags are serialized in the order described in the BCP 47 specification. Private-use subtags only appear at the end prefixed with an x.Qbcp47&Look up all language extension subtagsRbcp47Look up the script subtagSbcp47Look up the region subtagTbcp47Look up all variant subtagsUbcp47Look up all extension subtagsVbcp47Look up all private use subtagsWbcp47Convert tag to list of subtagsXbcp47Produce a list of  (<= priority) language tags inits enGBTJP[en,en-GB,en-GB-t-jp]Ybcp47Construct a simple language tagZbcp47Construct a localized tag[bcp47Parse a language tag from textfromText $ pack "en"Right enfromText $ pack "de-CH" Right de-CHfromText $ pack "ru-USR"ÀLeft "fromText:1:3:\n |\n1 | ru-USR\n | ^\nunexpected '-'\n"&fromText $ pack "en-a-ccc-v-qqq-a-bbb"Right en-a-bbb-a-ccc-v-qqqfromText $ pack "de-Latn-DE"Right de-Latn-DEfromText $ pack "de-Latf-DE"Right de-Latf-DEfromText $ pack "de-CH-1996"Right de-CH-1996fromText $ pack "de-Deva" Right de-Deva0fromText $ pack "zh-Hant-CN-x-private1-private2"$Right zh-Hant-CN-x-private1-private2'fromText $ pack "zh-Hant-CN-x-private1"Right zh-Hant-CN-x-private1fromText $ pack "zh-Hant-CN"Right zh-Hant-CNfromText $ pack "zh-Hant" Right zh-HantfromText $ pack "zh"Right zh]bcp47Spanish^bcp47English_bcp47Swahili`bcp47British Englishabcp47American Englishbbcp47A nonsense tag en-t-jpcbcp47A nonsense tag  en-GB-t-jp+ $&'-.0239;=NOPQRSTUVWXYZ[\]^_`abc+NXYZ[\PW OQ0R23S-.9T;=U$V&'^]_`abc None567<?mbcp47A trie mapping N tags to valuespbcp47 Construct a m from a list of tag/value pairs.qbcp47 Construct a m* from a non empty list of tag/value pairs.rbcp47 Construct a m from a single tag/value pair.sbcp47A left-biased union of two mÇ structures. The left value is prefered when duplicate tags are found.tbcp47s with a combining function.BCDEFGHklmnopqrstuvwxyz{|}mnopqrstuvklBCDEFGHxz{|}yw NoneqŽbcp47'Lookup the most relevant item for a tagÛ"Lookup is used to select the single language tag that best matches the language priority list for a given request...For example, if the language range is 'de-ch', a lookup operation can produce content with the tags de: or 'de-CH' but never content with the tag 'de-CH-1996'." +https://tools.ietf.org/html/bcp47#page-2-12bcp47Lookup an exact match for a tagbcp47Check if a tag exists in the m mpqrstvŽ mpqrŽstv Safe-Inferred²“”•–—˜™š› !"#$%%&'()*+,-./001234567889:;<=>?@ABCCDEFGHIJ K K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` 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 { | | } } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š › œ  ž Ÿ ¡¢£¤¥¦§¨©ª«¬­®#bcp47-0.2.0.2-FHUdODErwg3xtWv3CW9TcData.BCP47.Internal.ArbitraryData.BCP47.Internal.RegionData.BCP47.Internal.LanguageData.BCP47.Internal.Parser%Data.BCP47.Internal.LanguageExtensionData.BCP47.Internal.ExtensionData.BCP47.Internal.PrivateUseData.BCP47.Internal.ScriptData.BCP47.Internal.VariantData.BCP47.Internal.Subtags Data.BCP47Data.BCP47.Trie.InternalData.BCP47.Trie Paths_bcp47(QuickCheck-2.14.2-9AhRAvZYUVyKu9RkvnejmbTest.QuickCheck.Arbitrary arbitrary ArbitraryTest.QuickCheck.GenvectorOflistOfelementsoneofsuchThatchoose$country-0.2.1-EnsJ0IBNMO49xYhTM7bVg0Country.Unexposed.NamesCountry%iso639-0.1.0.3-7gAcXxrRARMFEM3Gx5dK9XData.LanguageCodesISO639_1numCharalphaNumString alphaString alphaCharcompleteLanguageExtensionlanguageExtensionToTextlanguageExtensionFromTextlanguageExtensionP$fArbitraryLanguageExtension$fShowLanguageExtension$fEqLanguageExtension$fOrdLanguageExtensionlanguageToTextlanguageFromText languageP ExtensionextensionToTextextensionFromText extensionP$fArbitraryExtension$fShowExtension $fEqExtension$fOrdExtension PrivateUseprivateUseToTextprivateUseFromText privateUseP$fArbitraryPrivateUse$fShowPrivateUse$fEqPrivateUse$fOrdPrivateUse regionToTextregionFromTextregionPScript scriptToTextscriptFromTextscriptP$fArbitraryScript $fShowScript $fEqScript $fOrdScriptVariant variantToTextvariantPvariantFromText$fArbitraryVariant $fShowVariant $fEqVariant $fOrdVariantSubtagsSpecifyLanguageExtension SpecifyScript SpecifyRegionSpecifyVariantSpecifyExtensionSpecifyPrivateUse$fArbitrarySubtags $fShowSubtags $fEqSubtags $fOrdSubtags$fGenericSubtagsBCP47languagetoTextextendedLanguageSubtagsscriptregionvariants extensions privateUse toSubtagsinits mkLanguage mkLocalizedfromTextparseresenswenGBenUSenTJPenGBTJP$fFromJSONBCP47 $fToJSONBCP47 $fReadBCP47 $fShowBCP47$fArbitraryBCP47 $fEqBCP47 $fOrdBCP47Trie2Trie unLanguagefromList fromNonEmpty singletonunion unionWith unionUsingmapMaybe mapMaybe2 singleton2 fromSubtagslookup2match2union2 union2Using $fMonoidTrie2$fSemigroupTrie2$fArbitraryTrie$fSemigroupTrie $fShowTrie$fEqTrie $fOrdTrie $fFunctorTrie$fFoldableTrie$fTraversableTrie $fShowTrie2 $fEqTrie2 $fOrdTrie2$fFunctorTrie2$fFoldableTrie2$fTraversableTrie2lookupmatchelembaseGHC.Num-#text-1.2.4.1-9XjLg7jyO9JFRb8fG3DntTData.Text.InternalTextversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName