summaryrefslogtreecommitdiff
path: root/src/Data/Name.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Data/Name.hs')
-rw-r--r--src/Data/Name.hs5
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