{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE NoMonomorphismRestriction #-} module Data.Units.SI.Prefixes.Attoparsec.Text ( decaP , hectoP , kiloP , megaP , gigaP , teraP , petaP , exaP , zettaP , yottaP , deciP , centiP , milliP , microP , nanoP , picoP , femtoP , attoP , zeptoP , yoctoP ) where import Control.Applicative import Data.Attoparsec.Text hiding (Number) import Data.Metrology.SI.Mono import Data.Units.SI.Prefixes () import Data.Text (Text) (>~) :: Char -> b -> Parser b a >~ b = char a >> return b (>>~):: Text -> b -> Parser b a >>~ b = string a >> return b decaP :: Parser Deca decaP = "da" >>~ Deca hectoP :: Parser Hecto hectoP = 'h' >~ Hecto kiloP :: Parser Kilo kiloP = 'k' >~ Kilo megaP :: Parser Mega megaP = 'M' >~ Mega gigaP :: Parser Giga gigaP = 'G' >~ Giga teraP :: Parser Tera teraP = 'T' >~ Tera petaP :: Parser Peta petaP = 'P' >~ Peta exaP :: Parser Exa exaP = 'E' >~ Exa zettaP :: Parser Zetta zettaP = 'Z' >~ Zetta yottaP :: Parser Yotta yottaP = 'Y' >~ Yotta deciP :: Parser Deci deciP = 'd' >~ Deci centiP :: Parser Centi centiP = 'c' >~ Centi milliP :: Parser Milli milliP = 'm' >~ Milli microP :: Parser Micro microP = (char 'μ' <|> char 'u') >> return Micro nanoP :: Parser Nano nanoP = 'n' >~ Nano picoP :: Parser Pico picoP = 'p' >~ Pico femtoP :: Parser Femto femtoP = 'f' >~ Femto attoP :: Parser Atto attoP = 'a' >~ Atto zeptoP :: Parser Zepto zeptoP = 'z' >~ Zepto yoctoP :: Parser Yocto yoctoP = 'y' >~ Yocto