!,\\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ MA module that contains the typeclasses on which the rest of the module works.hapytexeu+gh@gmail.com experimentalPOSIXSafe46SX/sordinalA type class used to split a value, based on the name of a number in a specific language. The value that is used to split, is often, depending on the language, the largest value smaller than the given number.ordinalA function that takes an \j value, and based on the object splits it with a value and the name of the number in a specific language.ordinal9A type class used for num to word algorithms. It maps an \ type i to ].ordinalConvert the given number to a ]+ object that is the given number in words.ordinalmA data type that specifies the different types of numbers. These can be used to specify the "target format".ordinalCardinal# numbers like one, two, three, etc.ordinalOrdinal( numbers like first, second, third, etc. ordinalA ^ variant of the  ` data type. This is used since the division part can be one, or the remainder part can be zero. ordinalA data type used to convert a number into segments. Each segment has an optional division and remainder part, together with a value and the name of that value in a language. ordinalThe optional division part. _! if the division is equal to one. ordinalThe value of the given segment.ordinalCThe name of the value of the given segment, in a specific language.ordinalThe optional remainder part. _# if the remainder is equal to zero.ordinal7A type alias of a function that converts a number to a   for that number.ordinalA type alias of a  function, with a free \ variable.ordinalA type alias of a function that maps a number to a 2-tuple that contains a number and the word for that number. This number is normally the largest number smaller than the given number. In case no name exists for a number smaller than the given one _ is returned.ordinalA type alias of a  function with a free \ variable.ordinalA type alias of a function that is used to merge the names of two numbers according to gramatical rules. The type parameter is the type of the numbers to merge.ordinal?The conversion algorithm that transforms the number into words.ordinalThe number to transform into a cardinal form.ordinalThe number in words in a cardinal form.ordinal?The conversion algorithm that transforms the number into words.ordinalThe number to transform into a ordinal form.ordinalThe number in words in a ordinal form.ordinal*The given format to convert the number to.ordinal?The conversion algorithm that transforms the number into words.ordinal,The number to transform into the given form.ordinal&The number in words in the given form.    Safep0Y`abcdefghijklmnopq`A module that constructs template Haskell to make defining an ordinize function more convenient.hapytexeu+gh@gmail.com experimentalPOSIXSafe:ordinalConstruct a function with the given name that maps suffixes in the first item of the 2-tuples to the second item of the 2-tuples. It turns this into a declaration.ordinal-The name of the function, often this is just  ordinize'ordinal]The list of suffixes and their corresponding mapping, the suffixes should be non-overlapping.ordinal]The name of the post-processing function in case there was no match, one can for example use r.ordinalThe corresponding declaration.A module used to define numeric prefixes for long and  short scales.hapytexeu+gh@gmail.com experimentalPOSIXNoneCx ordinal A list of Latin prefixes, used for the long and  short scale.!ordinalThe Latin prefixes in a s for O(1) lookup."ordinalLookup the given Latin prefix for the given value. ordinal A list of ]8 objects. This makes explicit recursion more convenient.!ordinalA s of ] objects to allow fast lookup."ordinal#The value to map on a Latin prefix.ordinal2The corresponding Latin prefix, given this exists. !"! "\A module that contains functions to construct algorithmic conversions from numbers to words.hapytexeu+gh@gmail.com experimentalPOSIXNonePSX}#ordinalRA data type used for to map larger numbers to words. This data type supports the  short scale and  long scale with Latin prefixes, and custom suffixes.&ordinalPA data type for algorithmic number to word conversions. Most western languages likely can work with this data type.tordinal3The word used as prefix to denote negative numbers.uordinalThe word used to denote one in the language.vordinalA s2 of small numbers, the first item is the word for two4 and each successor is the word for the next number.wordinalA list of 2-tuples where the first item contains the value, and the second the corresponding word, the values are ordered in descending value order.xordinalYA function that is used to generate words for large values (greater than or equal to one million), often constructed with the  short scale or  long scale.yordinal\A function that specifies how to merge words based on the grammar of that specific language.zordinalA function to conver the cardinal form of a number in an ordinal one.'ordinal Construct a % function for the given suffix for a  short scale.(ordinal Construct a ' function for the given suffixes for a  long scale.)ordinal Construct a % function for the given suffix for a  short scale, the names are written in  title case.*ordinal Construct a ' function for the given suffixes for a  long scale, the names are written in  title case.,ordinalA smart constructor for the &8 type. This constructor allows one to use an arbitrary {T type for the low words and mid words. It will also order the midwords accordingly.-ordinalConvert the given number to a   with the given sq of low numbers. Mid words and large numbers are not taken into account. This is often the next step after the ...ordinalConvert the given number to a   with the given s of low numbers, and the sortedg list of mid numbers. Large numbers are not taken into account. This is often the next step after the /./ordinalConvert the given number to a   with the given s of low numbers, the sorted list of mid numbers, and a  for large numbers.0ordinalConvert the given number to a   with the given s of low numbers, the sorted list of mid numbers, and a  for large numbers.1ordinalUse the given  to compress the   to a single ]) object that represents the given number.+ordinalThe post-processing function.ordinalThe # that is used.ordinalThe  result.-ordinalA s of low words.ordinal)The function that maps the number to the  ..ordinalA s of low words.ordinal3The list of name and the names of these numbers in  descending order for the mid words.ordinal)The function that maps the number to the  ./ordinalA s of low words.ordinal3The list of name and the names of these numbers in  descending order for the mid words.ordinalThe 2 used for large numbers, likely a splitter from a  short scale or  long scale.ordinal)The function that maps the number to the  .0ordinalA s of low words.ordinal3The list of name and the names of these numbers in  descending order for the mid words.ordinalThe 2 used for large numbers, likely a splitter from a  short scale or  long scale.ordinal)The function that maps the number to the  .1ordinalThe value used for one in the specific language.ordinalThe Q for the specific language that implements the grammar rules how to merge values.ordinal The given   value to turn into a ] object.ordinalThe ]; object that contains the name of the number stored in the  .#$%&'()*+,-./01&,#$%'()*+0-./1,A module to convert numbers to words in the German language.hapytexeu+gh@gmail.com experimentalPOSIXNone 8ordinalA &$ to convert numbers to words in the German language.9ordinal0The words used to mark a negative number in the German language.:ordinalThe word used for the number zero in the German language.;ordinalThe word used for the number one in the German language.<ordinalA s- that contains the word used for the numbers two to twenty in the German language.=ordinal=A list of 2-tuples that contains the names of values between thirty and thousand in the German language.>ordinalhA merge function that is used to combine the names of words together to larger words, according to the German grammar rules.?ordinal.A function that converts a number in words in cardinal form to ordinal form according to the German language rules.@ordinal$An algorithm to obtain the names of large% numbers (one million or larger) in German. German uses a  long scale with the illion and illiard suffixes.8ordinalA &: that can be used to convert numbers to different formats. 89:;<=>?@ 8?9:;<=@>,A module to convert numbers to words in the French language.hapytexeu+gh@gmail.com experimentalPOSIXNone AordinalA &$ to convert numbers to words in the French language.Bordinal0The words used to mark a negative number in the French language.CordinalThe word used for the number zero in the French language.DordinalThe word used for the number one in the French language.EordinalA s- that contains the word used for the numbers two to twenty in the French language.Fordinal=A list of 2-tuples that contains the names of values between thirty and thousand in the French language.GordinalhA merge function that is used to combine the names of words together to larger words, according to the French grammar rules.Hordinal.A function that converts a number in words in cardinal form to ordinal form according to the French language rules.Iordinal$An algorithm to obtain the names of large% numbers (one million or larger) in French. French uses a  long scale with the illion and illiard suffixes.AordinalA &: that can be used to convert numbers to different formats. ABCDEFGHI AHBCDEFIG,A module to convert numbers to words in the English language.hapytexeu+gh@gmail.com experimentalPOSIXNone Jordinal.A function that converts a number in words in cardinal form to ordinal form according to the English language rules.KordinalA &$ to convert numbers to words in the English language.Lordinal0The words used to mark a negative number in the English language.MordinalThe word used for the number zero in the English language.NordinalThe word used for the number one in the English language.OordinalA s- that contains the word used for the numbers two to twenty in the English language.Pordinal=A list of 2-tuples that contains the names of values between thirty and thousand in the English language.QordinalhA merge function that is used to combine the names of words together to larger words, according to the English grammar rules.Rordinal$An algorithm to obtain the names of large% numbers (one million or larger) in English. English uses a  short scale with the illion suffix.KordinalA &: that can be used to convert numbers to different formats. JKLMNOPQR KJLMNOPRQ,A module to convert numbers to words in the Dutch language.hapytexeu+gh@gmail.com experimentalPOSIXNone ź Sordinal.A function that converts a number in words in cardinal form to ordinal form according to the Dutch language rules.TordinalA &$ to convert numbers to words in the Dutch language.Uordinal0The words used to mark a negative number in the Dutch language.VordinalThe word used for the number zero in the Dutch language.WordinalThe word used for the number one in the Dutch language.XordinalA s- that contains the word used for the numbers two to twenty in the Dutch language.Yordinal=A list of 2-tuples that contains the names of values between thirty and thousand in the Dutch language.ZordinalhA merge function that is used to combine the names of words together to larger words, according to the Dutch grammar rules.[ordinal$An algorithm to obtain the names of large% numbers (one million or larger) in Dutch. Dutch uses a  long scale with the iljoen and iljard suffixes.TordinalA &: that can be used to convert numbers to different formats. STUVWXYZ[ TSUVWXY[Z _A module that re-exports the algorithms to convert numbers to words in the supported languages.hapytexeu+gh@gmail.com experimentalPOSIXNoneU8AKTTKA8 XThe main module that converts numbers to words. This module re-exports a set of modules.hapytexeu+gh@gmail.com experimentalPOSIXNoneʬ+  !"#$%&'()*+,-./018AKT|   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLDEFGHIJKJMDEFGHIKJNDEFGHIKOPQRSTOUVOUW X Y Z [ \ ] ^ _ ` a b c d e f g h iOjklmnopqrstuOvwx&ordinal-0.2.0.0-9kLJ7S49ThSBQPYPRZlT82Text.Numerals.Class Text.Numerals.Algorithm.TemplateText.Numerals.PrefixText.Numerals.AlgorithmText.Numerals.Languages.GermanText.Numerals.Languages.FrenchText.Numerals.Languages.EnglishText.Numerals.Languages.DutchText.Numerals.InternalText.Numerals.Languages Text.Numerals ValueSplit valueSplit NumToWord toCardinal toOrdinaltoWords NumberTypeCardinalOrdinalMNumberSegment NumberSegmentsegmentDivision segmentValue segmentTextsegmentRemainderNumberSegmentingFreeValueSplitter ValueSplitterFreeMergerFunctionMergerFunction$fFoldableNumberSegment$fFunctorNumberSegment$fEqNumberSegment$fOrdNumberSegment$fReadNumberSegment$fShowNumberSegment$fBoundedNumberType$fEnumNumberType$fEqNumberType$fOrdNumberTypeordinizeFromDictlatinPrefixes' latinPrefixes latinPrefixHighNumberAlgorithm ShortScale LongScaleNumeralsAlgorithm shortScale longScaleshortScaleTitlelongScaleTitle valueSplit'numeralsAlgorithm toSegmentLow toSegmentMid toSegmentHigh toSegmentscompressSegments$fNumToWordNumeralsAlgorithm$fValueSplitHighNumberAlgorithm$fEqHighNumberAlgorithm$fOrdHighNumberAlgorithm$fReadHighNumberAlgorithm$fShowHighNumberAlgorithmgerman negativeWord' zeroWord'oneWord' lowWords' midWords'merge' ordinize' highWords'frenchenglishdutchbaseGHC.RealIntegral text-1.2.3.1Data.Text.InternalText GHC.MaybeMaybeNothing _stripLastIf _mergeWith'_mergeWithSpace_mergeWithHyphen _mergeWith _showText _divisableBy _divisable100_div10_rem10_hundred _thousand_million_billion _trillion _iLogFloor_iLog_replaceSuffixGHC.Baseid&vector-0.12.1.2-KSb3nsihfSnCDYOh5IjlsC Data.VectorVector minusWordoneWordlowWordsmidWords highWords mergeFunctionordinize Data.FoldableFoldable