diff options
Diffstat (limited to 'src/Data/Name.hs')
| -rw-r--r-- | src/Data/Name.hs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/Data/Name.hs b/src/Data/Name.hs index ab49273..88e5bda 100644 --- a/src/Data/Name.hs +++ b/src/Data/Name.hs @@ -2,6 +2,7 @@ module Data.Name ( Name (..) , Name_ -- * Parsers + , parseName , readNameLFM , readNameFML -- * Writers @@ -15,7 +16,6 @@ import Prolog import Data.Aeson import Data.Alias import Data.Char (isSpace) -import Data.List qualified as L import Data.Set qualified as S import Data.Text qualified as T @@ -88,6 +88,9 @@ readNameFML t = T.map (\c -> if c == '~' then ' ' else c) <<$>> [] -> Nothing _ -> Just $ T.unwords m +parseName :: Alternative m => StrictText -> m Name_ +parseName = (<|>) <$> readNameLFM <*> readNameFML + showNameLFM :: Name_ -> StrictText showNameLFM (Name l f m) = stt l <> ", " <> stt f <> maybe "" (\x -> " " <> stt x) m |
