Îõ³h$RN˜      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–— Safe¢˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯ÍA module that contains the typeclasses on which the rest of the module works.hapytexeu+gh@gmail.com experimentalPOSIXSafe57ÔÙ 2ordinalÒA 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 °ê 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 in cardinal form.ordinalConvert the given number to a ±. object that is the given number in words in cardinal form.ordinalConvert the given number to a ±. object that is the given number in words in short cardinal form.ordinalConvert the given number to a ±8 object that is the given number in words in the given .ordinal?Convert the given time of the day to text describing that time.ordinalÄConvert the given hours and minutes to text that describes the time. ordinalÜA data type that describes the part of the day, and the number of hours on a 12-hour clock. ordinalThe part of the day. ordinalThe number of hours, between 1 and 12 (both inclusive). ordinal?A data type that describes the state of the hours within a day.ordinal+It is night, this means that it is between 0:00 and 5:59.ordinal-It is morning, this means that it is between 6:00 and 11:59.ordinal*It is afternoon, this means it is between 12:00 and 17:59.ordinal(It is evening, this means it is between 18:00 and 23:59.ordinalÃA data type that describes the state of the minutes within an hour.ordinalThe number of minutes is zero.ordinalÆThe parameter is the number of minutes past the hour, this is between 1 and 14.ordinalIt is a quarter past the hour.ordinalÃThe parameter is the number of minutes until half, this is between 1 and 14.ordinalIt is half past an hour.ordinalÂThe parameter is the number of minutes past half, this is between 1 and 14.ordinalIt is a quarter to an hour.ordinalÉThe parameter is the number of minutes to the next hour, this is between 1 and 14.ordinal„The type of a function that converts time to its description. The first two parameters are used to make conversion more convenient.ordinalòA data type that specifies the different types of numbers. These can be used to specify the "target format". The ² number type is .ordinalCardinal# numbers like one, two, three, etc.ordinalOrdinal( numbers like first, second, third, etc.ordinal Short ordinal! numbers like 1st, 2nd, 3rd, etc. ordinalA ³ variant of the !à data type. This is used since the division part can be one, or the remainder part can be zero.!ordinal¯A 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.%ordinalÃThe 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.)ordinalüA 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.+ordinal¡A 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.,ordinalA type alias for a - function, with a free ° variable.-ordinal4A type alias for a function that maps a number to a ± object..ordinal9Convert the given number of minutes to the corresponding ./ordinal7Convert the given number of hours to the corresponding  .0ordinal7Convert the given number of hours to the corresponding  .1ordinalîCorrect the hour to a 12 number segment. The input can be any Int number, whereas the result will be in the 1 .. 12 range.2ordinal&Convert the current time in the given µ% to the time in words with the given  algorithm.3ordinal=Convert the current time to the time in words with the given  algorithm as UTC time. 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 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.ordinal9The conversion algorithm to transform numbers into words.ordinal(The time of the day to convert to words.ordinal The time as text.ordinal9The conversion algorithm to transform numbers into words.ordinal6The number of hours, between 0 and 23 (both inclusive)ordinal7The number of minutes, beween 0 and 59 (both inclusive)ordinal The time as text.ordinalThe 4 that describes the state of minutes within an hour.ordinalThe  0 that describes the state of hours within a day.ordinalThe number of hours.ordinalThe number of minutes.ordinalA ±& object that describes the given time..ordinalThe number of minutes.ordinalThe corresponding ./ordinalThe given number of hours.ordinalThe corresponding  .0ordinalThe given number of hours.ordinalThe corresponding  .1ordinal"The value for the number of hours.ordinalThe hours in the 1 .. 12 range.2ordinal The given µ.ordinalThe ' algorithm that converts time to words.ordinalAn ¶ that will generate a ±1 object that describes the current time in words.3ordinalThe ' algorithm that converts time to words.ordinalAn ¶ that will generate a ±1 object that describes the current time in words.4  !"#$%&'()*+,-./01234!"#$%&   /0.123-,+*)('àA module that constructs template Haskell to make defining an ordinize function more convenient.hapytexeu+gh@gmail.com experimentalPOSIX Safe-Inferred#6Uordinal¥Construct 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.Uordinal-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 ·.ordinalThe corresponding declaration.UUA module used to define numeric prefixes for long and  short scales.hapytexeu+gh@gmail.com experimentalPOSIXNone %ÞVordinal A list of Latin prefixes, used for the long and  short scale.WordinalThe Latin prefixes in a ¸ for O(1) lookup.XordinalLookup the given Latin prefix for the given value.Vordinal A list of ±8 objects. This makes explicit recursion more convenient.WordinalA ¸ of ± objects to allow fast lookup.Xordinal#The value to map on a Latin prefix.ordinal2The corresponding Latin prefix, given this exists.VWXWVXÜA module that contains functions to construct algorithmic conversions from numbers to words.hapytexeu+gh@gmail.com experimentalPOSIXNone ÑÔÙ4J YordinalÒA 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. The ² value is the  short scale with illion as suffix. This is used in English for large numbers.\ordinalÐA data type for algorithmic number to word conversions. Most western languages likely can work with this data type.]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.aordinal Generate a value splitter for a Y7 but where the result is post-processed by a function.bordinalA smart constructor for the \8 type. This constructor allows one to use an arbitrary ¹Ô type for the low words and mid words. It will also order the midwords accordingly.cordinalConvert the given number to a ! with the given ¸ñ of low numbers. Mid words and large numbers are not taken into account. This is often the next step after the d.dordinalConvert the given number to a ! with the given ¸ of low numbers, and the sortedç list of mid numbers. Large numbers are not taken into account. This is often the next step after the e.eordinalConvert the given number to a ! with the given ¸ of low numbers, the sorted list of mid numbers, and a ( for large numbers.fordinalConvert the given number to a ! with the given ¸ of low numbers, the sorted list of mid numbers, and a ( for large numbers.gordinalUse the given + to compress the ! to a single ±) object that represents the given number.aordinalThe post-processing function.ordinalThe Y that is used.ordinalThe ( result.cordinalA ¸ of low words.ordinal)The function that maps the number to the !.dordinalA ¸ 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 !.eordinalA ¸ 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 !.fordinalA ¸ 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 !.gordinalThe value used for one in the specific language.ordinalThe +Ñ 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 !.YZ[\]^_`abcdefg\bYZ[]^_`afcdeg,A module to convert numbers to words in the German language.hapytexeu+gh@gmail.com experimentalPOSIXNone !:J pordinalA \$ to convert numbers to words in the German language.qordinal0Convert numers to their cardinal counterpart in German.rordinal0The words used to mark a negative number in the German language.sordinalThe word used for the number zero in the German language.tordinalThe word used for the number one in the German language.uordinalA ¸- that contains the word used for the numbers two to twenty in the German language.vordinal=A list of 2-tuples that contains the names of values between thirty and thousand in the German language.wordinalèA merge function that is used to combine the names of words together to larger words, according to the German grammar rules.xordinal.A function that converts a number in words in cardinal form to ordinal form according to the German language rules.yordinal$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.pordinalA \: that can be used to convert numbers to different formats.qordinalThe number to convert to text.ordinalThe cardinal counterpart in German. pqrstuvwxy pqxrstuvyw,A module to convert numbers to words in the French language.hapytexeu+gh@gmail.com experimentalPOSIXNone !@C zordinalA \$ to convert numbers to words in the French language.{ordinal0Convert numers to their cardinal counterpart in French.|ordinal0The words used to mark a negative number in the French language.}ordinalThe word used for the number zero in the French language.~ordinalThe word used for the number one in the French language.ordinalA ¸- that contains the word used for the numbers two to twenty in the French language.€ordinal=A list of 2-tuples that contains the names of values between thirty and thousand in the French language.ordinalèA merge function that is used to combine the names of words together to larger words, according to the French grammar rules.‚ordinal.A function that converts a number in words in cardinal form to ordinal form according to the French language rules.ƒordinal$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.zordinalA \: that can be used to convert numbers to different formats.{ordinalThe number to convert to text.ordinalThe cardinal counterpart in French. z{|}~€‚ƒ z{‚|}~€ƒ,A module to convert numbers to words in the English language.hapytexeu+gh@gmail.com experimentalPOSIXNone !FD „ordinal.A function that converts a number in words in cardinal form to ordinal form according to the English language rules.…ordinalA \$ to convert numbers to words in the English language.†ordinal0Convert numers to their cardinal counterpart in English.‡ordinal0The words used to mark a negative number in the English language.ˆordinalThe word used for the number zero in the English language.‰ordinalThe word used for the number one in the English language.ŠordinalA ¸- that contains the word used for the numbers two to twenty in the English language.‹ordinal=A list of 2-tuples that contains the names of values between thirty and thousand in the English language.ŒordinalèA merge function that is used to combine the names of words together to larger words, according to the English grammar rules.ordinal$An algorithm to obtain the names of large% numbers (one million or larger) in English. English uses a  short scale with the illion suffix.…ordinalA \: that can be used to convert numbers to different formats.†ordinalThe number to convert to text.ordinalThe cardinal counterpart in English. „…†‡ˆ‰Š‹Œ …†„‡ˆ‰Š‹Œ,A module to convert numbers to words in the Dutch language.hapytexeu+gh@gmail.com experimentalPOSIXNone !LK Žordinal.A function that converts a number in words in cardinal form to ordinal form according to the Dutch language rules.ordinalA \$ to convert numbers to words in the Dutch language.ordinal0Convert numers to their cardinal counterpart in Dutch.‘ordinal0The words used to mark a negative number in the Dutch language.’ordinalThe word used for the number zero in the Dutch language.“ordinalThe word used for the number one in the Dutch language.”ordinalA ¸- that contains the word used for the numbers two to twenty in the Dutch language.•ordinal=A list of 2-tuples that contains the names of values between thirty and thousand in the Dutch language.–ordinalèA 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.ordinalA \: that can be used to convert numbers to different formats.ordinalThe number to convert to text.ordinalThe cardinal counterpart in Dutch. Ž‘’“”•–— Ž‘’“”•—– ßA module that re-exports the algorithms to convert numbers to words in the supported languages.hapytexeu+gh@gmail.com experimentalPOSIXNoneMpz……zp ØThe main module that converts numbers to words. This module re-exports a set of modules.hapytexeu+gh@gmail.com experimentalPOSIXNoneMÊÊ  !"&%#$'()*+,-./0123VWXYZ[\]^_`abcdefgpz…º   !"#$%&'()*+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„{|}~€‚ƒ‚…{|}~€ƒ‚†{|}~€ƒ ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š › œ  žŸ ¡¢£¤¥¦§Ÿ¨©Ÿ¨ª«¬­®¯°Ÿ±²³´µŸ¶·¸&ordinal-0.4.0.4-4CWWvNvmKlOCzp4IR3Q80nText.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 toOrdinaltoShortOrdinaltoWords toTimeText toTimeText' DaySegmentdayPartdayHourDayPartNightMorning AfternoonEvening ClockSegmentOClockPast QuarterPastToHalfHalfPastHalf QuarterToTo ClockText NumberTypeCardinalOrdinal ShortOrdinalMNumberSegment NumberSegmentsegmentDivision segmentValue segmentTextsegmentRemainderNumberSegmentingFreeValueSplitter ValueSplitterFreeMergerFunctionMergerFunctionFreeNumberToWords NumberToWordstoClockSegment toDayPart toDaySegmenthourCorrectioncurrentTimeTextcurrentTimeText'$fArbitraryNumberSegment$fArbitrary1NumberSegment$fDefaultNumberType$fArbitraryNumberType$fArbitraryClockSegment$fArbitraryDayPart$fArbitraryDaySegment$fEqDaySegment$fOrdDaySegment$fReadDaySegment$fShowDaySegment$fBoundedDayPart $fEnumDayPart $fEqDayPart $fOrdDayPart $fReadDayPart $fShowDayPart$fEqClockSegment$fOrdClockSegment$fReadClockSegment$fShowClockSegment$fBoundedNumberType$fEnumNumberType$fEqNumberType$fOrdNumberType$fReadNumberType$fShowNumberType$fFoldableNumberSegment$fFunctorNumberSegment$fEqNumberSegment$fOrdNumberSegment$fReadNumberSegment$fShowNumberSegmentordinizeFromDictlatinPrefixes' latinPrefixes latinPrefixHighNumberAlgorithm ShortScale LongScaleNumeralsAlgorithm shortScale longScaleshortScaleTitlelongScaleTitle valueSplit'numeralsAlgorithm toSegmentLow toSegmentMid toSegmentHigh toSegmentscompressSegments$fNumToWordNumeralsAlgorithm$fValueSplitHighNumberAlgorithm$fDefaultHighNumberAlgorithm$fArbitraryHighNumberAlgorithm$fEqHighNumberAlgorithm$fOrdHighNumberAlgorithm$fReadHighNumberAlgorithm$fShowHighNumberAlgorithmgerman toCardinal' negativeWord' zeroWord'oneWord' lowWords' midWords'merge' ordinize' highWords'frenchenglishdutch _pluralize _pluralize' _stripLastIf _mergeWith'_mergeWithSpace_mergeWithHyphen _mergeWith _showText _divisableBy _divisable100_div10_rem10_hundred _thousand_million_billion _trillion _iLogFloor_iLog_replaceSuffix _showIntegral _showPositive_genText _shrinkTextbaseGHC.RealIntegral text-1.2.3.2Data.Text.InternalText1data-default-class-0.1.2.0-IIN1s3V8yfYEDHe5yjxXHVData.Default.ClassDefault GHC.MaybeMaybeNothing time-1.9.3%Data.Time.LocalTime.Internal.TimeZoneTimeZoneghc-prim GHC.TypesIOGHC.Baseid&vector-0.12.3.0-Iq8W8y7X87B1xSQfAcXis3 Data.VectorVector Data.FoldableFoldable