module Text.Numeral.Entry ( Conversion(..) , Entry(..) , emptyEntry ) where -------------------------------------------------------------------------------- -- Imports -------------------------------------------------------------------------------- import "this" Text.Numeral.Exp ( Exp ) import "this" Text.Numeral.Grammar ( Inflection ) import "text" Data.Text ( Text ) -------------------------------------------------------------------------------- -- Language entry -------------------------------------------------------------------------------- data Conversion a = Conversion { toNumeral :: Inflection -> a -> Maybe Text , toStructure :: a -> Exp } data Entry = Entry { entIso639_1 :: Maybe Text , entIso639_2 :: [Text] , entIso639_3 :: Maybe Text , entNativeNames :: [Text] , entEnglishName :: Maybe Text , entVariant :: Maybe Text , entCardinal :: Maybe (Conversion Integer) , entOrdinal :: Maybe (Conversion Integer) , entPartitive :: Maybe (Conversion (Integer, Integer)) , entMultiplicative :: Maybe (Conversion Integer) } emptyEntry :: Entry emptyEntry = Entry { entIso639_1 = Nothing , entIso639_2 = [] , entIso639_3 = Nothing , entNativeNames = [] , entEnglishName = Nothing , entVariant = Nothing , entCardinal = Nothing , entOrdinal = Nothing , entPartitive = Nothing , entMultiplicative = Nothing }