/      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab c d e f!g!h!i!j"k"l"m#n#o#p#q#r#s$t$u$v$w%x%y%z%{&|&}&~&''''(((())))************++++,,,,---...../3Safe#STIllative (abbreviated ill; from Latin illatus "brought in") is, in the Finnish language, Estonian language and the Hungarian language, the third of the locative cases with the basic meaning of "into (the inside of)".Inessive case (abbreviated ine; from Latin inesse "to be in or at") is a locative grammatical case. This case carries the basic meaning of "in".zElative (abbreviated ela; from Latin efferre "to bring or carry out") is a locative case with the basic meaning "out of".Allative case (abbreviated all; from Latin allt-, afferre "to bring to") is a type of the locative cases used in several languages. The term allative is generally used for the lative case in the majority of languages which do not make finer distinctions.In Uralic languages, such as Finnish, Estonian and Hungarian, the adessive case (abbreviated ade; from Latin adesse "to be present") is the fourth of the locative cases with the basic meaning of "on".VIn linguistics, ablative case (abbreviated abl) is a name given to cases in various languages whose common characteristic is that they mark motion away from something, though the details in each language may differ. The name "ablative" derives from the Latin ablatus, the (irregular) perfect passive participle of auferre "to carry away". In linguistics, abessive (abbreviated abe or abess), caritive and privative (abbreviated priv) are names for a grammatical case expressing the lack or absence of the marked noun. QThe ablative case (abbreviated abl) indicates movement from something, or cause.MThe accusative case (abbreviated acc) indicates the direct object of a verb.The comitative case (abbreviated com), also known as the associative case (abbreviated ass), is a grammatical case that denotes companionship, and is used where English would typically use preposition "with" in the sense of "in company with" or "together with" (other uses of "with," e.g. with the meaning of "using," "by means of" (I cut bread with a knife) would correspond to the instrumental case or related cases).vThe dative case (abbreviated dat, or sometimes d when it is a core argument) indicates the indirect object of a verb.SThe delative case (abbreviated del; from Latin deferre "to bear or bring away or down") in the Hungarian language can originally express the movement from the surface of something (e.g. "off the table"), but it is used in several other meanings (e.g. "about people"), some of them related to the original (e.g. "from the post office").\The distributive case (abbreviated distr) is used on nouns for the meanings of per or each.@The distributive-temporal case specifies when something is done.The essive or similaris case (abbreviated ess) carries the meaning of a temporary location or state of being, often equivalent to the English "as a (child)".The genitive case (abbreviated gen; also called the possessive case or second case), which roughly corresponds to English's possessive case and preposition of, indicates the possessor of another noun.The instrumental case (abbreviated ins or instr; also called the eighth case) indicates an object used in performing an action.In the Finnish language and Estonian language, the instructive case has the basic meaning of "by means of". It is a comparatively rarely used case, though it is found in some commonly used expressions, such as omin silmin -> "with one's own eyes".HLative (abbreviated lat) is a case which indicates motion to a location. It corresponds to the English prepositions "to" and "into". The lative case belongs to the group of the general local cases together with the locative and separative case. The term derives from the Latin lat-, the participle stem of ferre, "to bring".9The locative case (abbreviated loc) indicates a location.fThe multiplicative case is a grammatical case used for marking a number of something ("three times").NThe nominative case (abbreviated nom) indicates the subject of a finite verb.The partitive case (abbreviated ptv or more ambiguously part) denotes "partialness", "without result", or "without specific identity". It is also used in contexts where a subgroup is selected from a larger group, or with numbers.#The term sublative case (abbreviated subl) is used to refer to grammatical cases expressing different situations: In Hungarian, it expresses the destination of the movement, originally to the surface of something (e.g. sit down on the ground, climb the tree), but in other figurative meanings as well (e.g. to university, for two nights), while in Tsez and other Northeast Caucasian languages it denotes a movement towards the bottomsides or the area under an object. The sublative case is used in the Finnish, Tsez and Hungarian languages.The Superessive case (abbreviated supe) is a grammatical declension indicating location on top of, or on the surface of something. Its name comes from Latin supersum, superesse: to be over and above.The translative case (abbreviated transl) is a grammatical case that indicates a change in state of a noun, with the general sense of "becoming X" or "change to X". )The vocative case indicates an addressee.|   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu!"#$%&   '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstT    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstSafeST A side or direction, either eft or ight.Left.Right.9An expression that represents the structure of a numeral.iAn unknown value. This is used to signal that a value can not be represented in the expression language.A literal value.Example in English: "three" = Lit 3Negation of an expression.Example in English: "minus two" = Neg (Lit 2)Addition of two expressions.Example in English: "fifteen" = Lit 5 `Add` Lit 10"Multiplication of two expressions.Example in English: "thirty" = Lit 3 `Mul` Lit 102One expression subtracted from another expression.Example in Latin: 1"duodv+gint+" = Lit 2 `Sub` (Lit 2 `Mul` Lit 10) A fraction.Example in English: %"two thirds" = `Frac` (Lit 2) (Lit 3)"A step in a scale of large values.Should be interpreted as 10 ^ (rank * base + offset).Example in English: "quadrillion" = Scale 3 3 4A change of grammatical gender.OThis is used in a language like Spanish where the inflection of a number word is not always constant. Specifically, in Spanish, large number names always have the masculine gender. So 'milln', 'billn' and the like are all masculine. This can result in the following number word: 10000001 = "un (masculine) milln una (feminine)"5Example in Spanish (with the context being Feminine): U"un milln una" = ChangeGender (Just Masculine) (Lit 1) `Mul` Scale 3 3 1 `Add` Lit 1 676Safe!"STA context in which an ression appears.2The empty context. Used for top level expressions.Negation context.Addition context.Multiplication context.Subtraction context.Fraction context.Scale context.Function that renders the representation of a step in a scale of large values. The value represented by the step is 10 ^ (rank * base + offset).A representation for numerals.A 3 contains all the information on how to render an  ression to a  value."Representation for unknown values.BRenders a literal value. Not necessarily defined for every value.TRenders a negation. This concerns the negation itself, not the thing being negated.Renders an addition. This concerns the addition itself, not the things being added. For example: In "one hundred and eighty" this function would be responsible for rendering the "and".dRenders a multiplication. This concerns the multiplication itself, not the things being multiplied.^Renders a subtraction. This concerns the subtraction itself, not the things being subtracted.]Renders a fraction. This concerns the fraction itself, not the numerator or the denominator.*Renders a step in a scale of large values.zCombines a negation and the thing being negated. For example: this would combine "minus" and "three" into "minus three".0Combines an addition and the things being added.:Combines a multiplication and the things being multiplied.7Combines a subtraction and the things being subtracted.6Combines a fraction and the numerator and denominator.Renders an expression to a = value according to a certain representation and inflection.The default representation.?Only the combining functions are defined. The rest are either  or always produce .^Checks whether a context is completely on the outside of an expression, either left or right.Given the following expression:  ( 1000) ( ( ( 2) ( 100)) ( ( 4) ( ( 3) ( 10)))) On the left we have  1000 and on the right  10.Base.Offset.Rank. Rank context.Representation.Initial inflection.The expression to render.SafeST 0NoneBST1NoneBST!Only defined for positive inputs! Power of an / by the left-to-right repeated squaring algorithm. This needs two multiplications in each step while the right-to-left algorithm needs only one multiplication for 0-bits, but here the two factors always have approximately the same size, which on average gains a bit when the result is large.For small results, it is unlikely to be any faster than '(^)', quite possibly slower (though the difference shouldn't be large), and for exponents with few bits set, the same holds. But for exponents with many bits set, the speedup can be significant.Warning:~ No check for the negativity of the exponent is performed, a negative exponent is interpreted as a large positive exponent.A raw version of testBit for .NoneSTThe (base 10) logarithm of an integral value. Note that the result must be able to fit in an ordinary Int value. This means the maximum input value is 10 ^ (maxBound :: Int).Raise 10 to some power.NoneST sA rule on how to convert a number into an expression language. Notice how this type is similar to the type of the  operator.The 'if-then-else' concept for rules. Applies the first rule if the predicate holds on the input value, otherwise applies the second rule.3Tries to apply the first rule, if that produces an # value it applies the second rule./Transform a value before it is given to a rule.QChooses which rule to apply to an input value based on a interval list of rules.IA rule that always fails to convert a value. It constantly produces the 23 value.#(fix unknown) (3 :: Integer) :: ExpUnknown/The literal rule. Converts its argument into a 24eral expression.'lit (fix unknown) (3 :: Integer) :: ExpLit 35In this example lit is applied to the nonsense rule " ^". Lit ignores that function, which is why we can pass it anything we want, including itself.)lit (fix undefined) (3 :: Integer) :: ExpLit 3(fix lit) (3 :: Integer) :: ExpLit 3A variant on the  rule which always multiplies its argument with 1. Useful for languages which have numerals of the form "one hundred and three" as opposed to "hundred and three".(lit1 (fix unknown) (3 :: Integer) :: ExpMul (Lit 1) (Lit 3)/(pos $ lit $ fix unknown) (3 :: Integer) :: ExpLit 30(pos $ lit $ fix unknown) (-3 :: Integer) :: Exp Neg (Lit 3)4(checkPos $ lit $ fix unknown) (3 :: Integer) :: ExpLit 35(checkPos $ lit $ fix unknown) (-3 :: Integer) :: ExpUnknown5(add 10 L $ lit $ fix unknown) (13 :: Integer) :: ExpAdd (Lit 3) (Lit 10)7(mul 10 R L $ lit $ fix unknown) (42 :: Integer) :: Exp"Add (Mul (Lit 4) (Lit 10)) (Lit 2)3(sub 20 $ lit $ fix unknown) (18 :: Integer) :: ExpSub (Lit 2) (Lit 20)  Predicate on input value ("if").,Rule to apply when predicate holds ("then").4Rule to apply when predicate does not hold ("else").First interval rule.Interval rule list.!Upper bound of the last interval.lit ruleadd rulemul rulePerforms the multiplication.Base.Offset. Add side. Mul side. Big num rule.Base.Offset. Add side. Mul side. Big num rule.Base.Offset. Add side. Mul side. Big num rule. Add side. Mul side. Big num rule. Add side. Mul side. Big num rule. Add side. Mul side. Big num rule. Add side. Mul side. Big num rule. Add side. Mul side. Big num rule. Add side. Mul side. Big num rule. 5NoneST  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstNoneSTFunction that renders the postfix part of a large number name. Or more simply put, this calculates the "illion" part of "million", "billion", etc. Current inflection.Context.Postfix representation.Additional symbol map entries.Postfix for offset 0 names.Postfix for offset 3 names.Additional symbol map entries. NoneST NoneST NoneSTLike : but forces the right-hand-side to have masculine gender. NoneST NoneSTQTransliterates a string written in the Cherokee syllabary to the latin alphabet. NoneSTNoneST Add representation.Negative number prefix. NoneST                     NoneSTAdd representation.Negative number prefix.  NoneSTNoneSTLike the normal ^ rule with the difference that the value that is multiplied is changed to the partitive case.  ! !  NoneST !"#$%&!"#$%&!"#$%& !"#$%&NoneST'()*'()*'()*'()*NoneST+,- +,-+, -+,-None:ST./01./01./01./01NoneST 234567234567234657 234567NoneST89:;<=>?@AB 89:;<=>?@AB ;=?A<>@B89:89:;<=>?@ABNoneSTCDEFCDEFCDEFCDEFNoneSTGHIJGHIJGHIJGHIJNoneSTKLMNKLMNKLMNKLMNNoneST OPQRSTUOPQRSTUOPQRSTU OPQRSTUNoneSTVWXYVWXYVWXYVWXYNoneSTZ[\]Z[\]Z[\]Z[\]NoneST^_`a^_`a^_`a^_`a NoneSTbcdebcdebcdebcde!NoneSTgliczebniki gBwnefghifghifghifghi"NoneSTjklhjkljkhljkl#NoneSTLike < with the difference that all scale elements are masculine. mnopqrmnopqrmnopqr mnopqr$NoneSTstuvstuvstuvstuv%NoneSTwxyzwxyzwxyzwxyz&NoneSTLike < with the difference that all scale elements are masculine.{|}~{|}~{|}~{|}~'NoneST  (NoneST  )NoneST  *NoneST      6NoneST+NoneST,NoneST-NoneST.NoneSTLike G with the difference that all scale elements are of the common gender.  !"  !"/None@ST#789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~34                           !"#$%&'( !)*+,-./0123{    !!!!"""####4#5#$$$$%%%%&&&&''''(((())))***6*7*8*9*:*;*<*=*>*?++++,,,,---...../@ABCDEFPGHIJKLMNOMNP1Q1RMST1UVWX1YJKZJ[\]^_`a  b  c   `d`ae`fgahai`ae``aejklmn`a ` !"#o##a#c$%&p&&q''r''()**]*s*t**u*v*w*x*y*z*{*|6}6~6+,-...a.e%numerals-0.4.1-7LxGuCRosMiG20CIlJfn7UText.Numeral.GrammarText.Numeral.ExpText.Numeral.RenderText.Numeral.EntryText.Numeral.MiscText.Numeral.RulesText.Numeral.BigNumText.Numeral.Language.AFRText.Numeral.Language.AMPText.Numeral.Language.BULText.Numeral.Language.CHNText.Numeral.Language.CHRText.Numeral.Language.CLMText.Numeral.Language.CROText.Numeral.Language.DEUText.Numeral.Language.ENGText.Numeral.Language.EPOText.Numeral.Language.FINText.Numeral.Language.FRAText.Numeral.Language.GLVText.Numeral.Language.GSWText.Numeral.Language.HEBText.Numeral.Language.ITAText.Numeral.Language.JPNText.Numeral.Language.LATText.Numeral.Language.MLGText.Numeral.Language.NENText.Numeral.Language.NLDText.Numeral.Language.NOBText.Numeral.Language.NQMText.Numeral.Language.OJIText.Numeral.Language.PDCText.Numeral.Language.POLText.Numeral.Language.CESText.Numeral.Language.PORText.Numeral.Language.RUSText.Numeral.Language.SCOText.Numeral.Language.SPAText.Numeral.Language.TURText.Numeral.Language.WOLText.Numeral.Language.YORText.Numeral.Language.ZHOText.Numeral.Language.FURText.Numeral.Language.HOPText.Numeral.Language.LLDText.Numeral.Language.SWEText.Numeral.Language.EntriesGHC.Integer.Logarithms.CompatMath.NumberTheory.LogarithmsEunknownlit Text.NumeralText.Numeral.Render.UtilsNumberSingularDualTrialPaucalPluralGenderNeuter MasculineFeminineCommonCaseAbessiveAblative Accusative ComitativeDativeDelative DistributiveDistributiveTemporalEssiveGenitive Instrumental InstructiveLativeLocativeMultiplicative Nominative Partitive Sublative SuperEssive TranslativeVocative InflectioniCaseiGenderiNumberdefaultInflectionnoCase hasNoCaseablative isAblativeabessive isAbessive accusative isAccusative comitative isComitativedativeisDativedelative isDelative distributiveisDistributivedistributiveTemporalisDistributiveTemporalessiveisEssivegenitive isGenitive instrumentalisInstrumental instructive isInstructivelativeisLativelocative isLocativemultiplicativeisMultiplicative nominative isNominative partitive isPartitive superEssive isSuperEssive sublative isSublative translative isTranslativevocative isVocativelocativeInessiveisLocativeInessivelocativeElativeisLocativeElativelocativeIllativeisLocativeIllativelocativeAdessiveisLocativeAdessivelocativeAblativeisLocativeAblativelocativeAllativeisLocativeAllativenoGender hasNoGenderneuterisNeuter masculine isMasculinefeminine isFemininecommonisCommonnoNumber hasNoNumbersingular isSingulardualisDualtrialisTrialpaucalisPaucalpluralisPlural $fEqLocative$fShowLocative$fEqCase $fShowCase $fEqGender $fShowGender $fEqNumber $fShowNumber$fShowInflection$fEqInflectionSideLRExpUnknownLitNegAddMulSubFracScale ChangeCase ChangeGender ChangeNumbershowExp evalScale$fEqSide $fShowSideCtxCtxEmptyCtxNegCtxAddCtxMulCtxSubCtxFracCtxScale ScaleReprRepr reprUnknown reprValuereprNegreprAddreprMulreprSubreprFrac reprScalereprNegCombinereprAddCombinereprMulCombinereprSubCombinereprFracCombinerender defaultReprposIndex isOutside$fEqCtx $fShowCtxEntry entIso639_1 entIso639_2 entIso639_3entNativeNamesentEnglishName entVariant entCardinal entOrdinal entPartitiveentMultiplicative Conversion toNumeral toStructure emptyEntrydecintLogRule conditionalcombinemapRulefindRulelit1poscheckPosaddmulmul1submkStepstepstep1 mulScale_mulScale mulScale1 shortScale shortScale1 longScale longScale1pelletierScalepelletierScale1 changeCase changeGender changeNumber PostfixReprcardinalrule cardinalReprsymMapforms scaleRepr pelletierRepr quantityNameordQuantityNameentryordinalstructbounds transliterateshortScaleStructpelletierScaleStructgb_entryus_entry gb_cardinal gb_ordinalgbPelletier_cardinal us_cardinal us_ordinalcardinalStruct ordinalStruct daiji_bounds kanji_entrykanji_cardinal daiji_entrydaiji_cardinal on'yomi_entryon'yomi_cardinalpreferred_entrypreferred_cardinalcardinal_structordinal_struct trad_entry trad_cardinal simpl_entrysimpl_cardinalfinance_trad_entryfinance_trad_cardinalfinance_simpl_entryfinance_simpl_cardinal pinyin_entrypinyin_cardinalentriesLocativeIllativeLocativeInessiveLocativeElativeLocativeAllativeLocativeAdessiveLocativeAblative#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalTextbaseGHC.BaseNothing integer-gmpGHC.Integer.Logarithms wordLog2# integerLog2# integerLog10' integerPowerGHC.Integer.TypeIntegerhasBit#ghc-primGHC.PrimWord#power$ Data.FunctionfixflipIfRmkIntervalList mkIntervalMap genericRepr ordinalReprshortScale1_bgshortScaleReprhr_add bigNumSymsgb_addus_addfi_mulinfFormskanji_cardinal_reprdaiji_cardinal_repr generic_repron'yomi_cardinal_reprpreferred_cardinal_reprshortScale1_pt longScale1_es longScaleRepr addToTensadd0mulXtrad_cardinalRepr trad_symssimpl_cardinalRepr simpl_symsfinance_trad_cardinalReprfinance_trad_symsfinance_simpl_cardinalReprpinyin_cardinalRepraddCtxmulCtx outsideCtxpelletierScale1_sv