-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Convert numbers to number words -- -- Convert numbers to number words in a number of languages. Each -- language has its own module. The module name is based on one of the -- ISO 639 Alpha codes. Each module contains one or more cardinal -- functions and a struct function. The cardinal functions -- directly convert cardinal numbers to a string-like representation of -- their spoken form. The struct functions convert numbers to a -- polymorphic representation of their grammatical structure. All -- language modules are implemented using the numerals-base -- package. -- -- The use of this package is best understood with some examples. Because -- the results of conversion are polymorphic we need to choose a specific -- type. For these examples we'll use simple strings. But any type that -- has instances for Monoid and IsString will work. First -- some English number names, both British and US variants: -- --
--   >>> import qualified Text.Numeral.Language.EN as EN
--   
--   >>> EN.uk_cardinal 123 :: Maybe String
--   Just "one hundred and twenty-three"
--   
--   >>> EN.us_cardinal (10^50 + 42) :: Maybe String
--   Just "one hundred quindecillion forty-two"
--   
-- -- French, which contains some traces of a base 20 system: -- --
--   >>> import qualified Text.Numeral.Language.FR as FR
--   
--   >>> FR.cardinal (-99) :: Maybe String
--   Just "moins quatre-vingt-dix-neuf"
--   
-- -- Conversions can fail. Alamblak, a language spoken by a few people in -- Papua New Guinea, has no representation for negative numbers: -- --
--   >>> import qualified Text.Numeral.Language.AMP as AMP
--   
--   >>> AMP.cardinal (-3) :: Maybe String
--   Nothing
--   
-- -- Some languages have multiple scripts and methods for writing number -- names. Take Chinese for example, which can be written using Han -- characters or transcribed to the Latin script using Pinyin. -- -- Traditional Chinese characters: -- --
--   >>> import qualified Text.Numeral.Language.ZH as ZH
--   
--   >>> ZH.trad_cardinal 123456 :: Maybe String
--   Just "十二萬三千四百五十六"
--   
-- -- Simplified characters for use in financial contexts: -- --
--   >>> ZH.finance_simpl_cardinal 123456 :: Maybe String
--   Just "拾贰万参仟肆伯伍拾陆"
--   
-- -- Transcribed using Pinyin: -- --
--   >>> ZH.pinyin_cardinal 123456 :: Maybe String
--   Just "shíèrwàn sānqiān sìbǎi wǔshí liù"
--   
-- -- Using the struct functions you can see the grammatical -- structure of number names. Because the results of these functions are -- polymorphic you need to specify a specific type. -- --
--   >>> import qualified Text.Numeral.Language.NL as NL
--   
--   >>> NL.struct 123 :: Maybe Integer
--   Just 123
--   
--   >>> import Text.Numeral
--   
--   >>> NL.struct 123 :: Maybe Exp
--   Just (Add (Lit 100) (Add (Lit 3) (Mul (Lit 2) (Lit 10))))
--   
-- -- Compare with: -- --
--   >>> NL.cardinal 123 :: Maybe String
--   Just "honderddrieëntwintig"
--   
-- -- 100 (honderd) + (3 (drie) + (ën) 2 (twin) * 10 (tig)) @package numerals @version 0.3.0.1 -- | module Text.Numeral.Language.ZH struct :: (Integral α, Unknown β, Lit β, Neg β, Add β, Mul β) => α -> β trad_cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s simpl_cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s finance_trad_cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s finance_simpl_cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s pinyin_cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s -- | module Text.Numeral.Language.YOR cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Add β, Sub β, Mul β) => α -> β -- | module Text.Numeral.Language.WO cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Add β, Mul β) => α -> β -- | module Text.Numeral.Language.TR cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Scale α, Unknown β, Lit β, Add β, Mul β, Scale β) => α -> β -- | module Text.Numeral.Language.SV cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Scale α, Unknown β, Lit β, Neg β, Add β, Mul β, Scale β) => α -> β -- | module Text.Numeral.Language.SCO cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Add β, Mul β) => α -> β -- | module Text.Numeral.Language.RU cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Neg β, Add β, Mul β) => α -> β -- | module Text.Numeral.Language.PT cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Scale α, Unknown β, Lit β, Neg β, Add β, Mul β, Scale β) => α -> β -- | module Text.Numeral.Language.OJ cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Add β, Mul β) => α -> β -- | module Text.Numeral.Language.NQM cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Add β, Mul β) => α -> β -- | module Text.Numeral.Language.NO cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Neg β, Add β, Mul β) => α -> β -- | module Text.Numeral.Language.NL cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Scale α, Unknown β, Lit β, Neg β, Add β, Mul β, Scale β) => α -> β -- | module Text.Numeral.Language.MG cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Add β, Mul β) => α -> β -- | module Text.Numeral.Language.LA cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Add β, Sub β, Mul β) => α -> β -- | module Text.Numeral.Language.JA struct :: (Integral α, Unknown β, Lit β, Neg β, Add β, Mul β) => α -> β kanji_cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s daiji_cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s on'yomi_cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s preferred_cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s -- | module Text.Numeral.Language.IT cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Scale α, Unknown β, Lit β, Neg β, Add β, Mul β, Scale β) => α -> β -- | module Text.Numeral.Language.GV cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Add β, Mul β) => α -> β -- | module Text.Numeral.Language.FR cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Scale α, Unknown β, Lit β, Neg β, Add β, Mul β, Scale β) => α -> β -- | module Text.Numeral.Language.ES cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Scale α, Unknown β, Lit β, Neg β, Add β, Mul β, Scale β) => α -> β -- | module Text.Numeral.Language.EO cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Add β, Mul β) => α -> β -- | module Text.Numeral.Language.EN uk_cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s ukPelletier_cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s us_cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s shortScaleStruct :: (Integral α, Scale α, Unknown β, Lit β, Neg β, Add β, Mul β, Scale β) => α -> β longScaleStruct :: (Integral α, Scale α, Unknown β, Lit β, Neg β, Add β, Mul β, Scale β) => α -> β pelletierScaleStruct :: (Integral α, Scale α, Unknown β, Lit β, Neg β, Add β, Mul β, Scale β) => α -> β -- | module Text.Numeral.Language.DE cardinal :: (Integral α, Scale α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Scale α, Unknown β, Lit β, Neg β, Add β, Mul β, Scale β) => α -> β -- | module Text.Numeral.Language.CHN cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Add β, Mul β) => α -> β -- | module Text.Numeral.Language.AMP cardinal :: (Integral α, Monoid s, IsString s) => α -> Maybe s struct :: (Integral α, Unknown β, Lit β, Add β, Mul β) => α -> β