module Data.Char.Small where
superscript :: Char -> Char
superscript :: Char -> Char
superscript =
Char -> (Char -> Char) -> Maybe Char -> Char
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> Char
forall a. HasCallStack => [Char] -> a
error [Char]
"no superscript character available") Char -> Char
forall a. a -> a
id (Maybe Char -> Char) -> (Char -> Maybe Char) -> Char -> Char
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
Char -> Maybe Char
superscriptMaybe
superscriptMaybe :: Char -> Maybe Char
superscriptMaybe :: Char -> Maybe Char
superscriptMaybe Char
c =
case Char
c of
Char
'0' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2070'
Char
'1' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\xb9'
Char
'2' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\xb2'
Char
'3' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\xb3'
Char
'4' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2074'
Char
'5' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2075'
Char
'6' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2076'
Char
'7' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2077'
Char
'8' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2078'
Char
'9' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2079'
Char
'+' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x207A'
Char
'-' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x207B'
Char
'=' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x207C'
Char
'(' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x207D'
Char
')' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x207E'
Char
'i' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2071'
Char
'n' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x207F'
Char
_ -> Maybe Char
forall a. Maybe a
Nothing
subscript :: Char -> Char
subscript :: Char -> Char
subscript =
Char -> (Char -> Char) -> Maybe Char -> Char
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> Char
forall a. HasCallStack => [Char] -> a
error [Char]
"no subscript character available") Char -> Char
forall a. a -> a
id (Maybe Char -> Char) -> (Char -> Maybe Char) -> Char -> Char
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
Char -> Maybe Char
subscriptMaybe
subscriptMaybe :: Char -> Maybe Char
subscriptMaybe :: Char -> Maybe Char
subscriptMaybe Char
c =
case Char
c of
Char
'0' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2080'
Char
'1' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2081'
Char
'2' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2082'
Char
'3' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2083'
Char
'4' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2084'
Char
'5' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2085'
Char
'6' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2086'
Char
'7' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2087'
Char
'8' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2088'
Char
'9' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2089'
Char
'+' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x208A'
Char
'-' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x208B'
Char
'=' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x208C'
Char
'(' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x208D'
Char
')' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x208E'
Char
'a' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2090'
Char
'e' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2091'
Char
'o' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2092'
Char
'x' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2093'
Char
'h' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2095'
Char
'k' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2096'
Char
'l' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2097'
Char
'm' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2098'
Char
'n' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x2099'
Char
'p' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x209A'
Char
's' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x209B'
Char
't' -> Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'\x209C'
Char
_ -> Maybe Char
forall a. Maybe a
Nothing