{-# LANGUAGE OverloadedStrings #-}
module Text.Numerals.Prefix (
latinPrefixes, latinPrefixes', latinPrefix
) where
import Data.Text(Text)
import Data.Vector(Vector, (!?), fromList)
latinPrefixes' :: [Text]
latinPrefixes' = [
"m"
, "b"
, "tr"
, "quadr"
, "quint"
, "sext"
, "sept"
, "oct"
, "non"
, "dec"
, "undec"
, "duodec"
, "tredec"
, "quattuordec"
, "quindec"
, "sedec"
, "septendec"
, "octodec"
, "novendec"
, "vigint"
, "unvigint"
, "duovigint"
, "tresvigint"
, "quattuorvigint"
, "quinvigint"
, "sesvigint"
, "septemvigint"
, "octovigint"
, "novemvigint"
, "trigint"
, "untrigint"
, "duotrigint"
, "trestrigint"
, "quattuortrigint"
, "quintrigint"
, "sestrigint"
, "septentrigint"
, "octotrigint"
, "noventrigint"
, "quadragint"
]
latinPrefixes :: Vector Text
latinPrefixes = fromList latinPrefixes'
latinPrefix :: Integral i
=> i
-> Maybe Text
latinPrefix n = latinPrefixes !? (fromIntegral n - 1)