module HaskellWorks.CabalCache.Options ( readOrFromTextOption ) where import Network.AWS.Data.Text (FromText (..), fromText) import Options.Applicative hiding (columns) import Text.Read (readEither) import qualified Data.Text as T readOrFromTextOption :: (Read a, FromText a) => Mod OptionFields a -> Parser a readOrFromTextOption :: Mod OptionFields a -> Parser a readOrFromTextOption = let fromStr :: String -> Either String a fromStr String s = String -> Either String a forall a. Read a => String -> Either String a readEither String s Either String a -> Either String a -> Either String a forall (f :: * -> *) a. Alternative f => f a -> f a -> f a <|> Text -> Either String a forall a. FromText a => Text -> Either String a fromText (String -> Text T.pack String s) in ReadM a -> Mod OptionFields a -> Parser a forall a. ReadM a -> Mod OptionFields a -> Parser a option (ReadM a -> Mod OptionFields a -> Parser a) -> ReadM a -> Mod OptionFields a -> Parser a forall a b. (a -> b) -> a -> b $ (String -> Either String a) -> ReadM a forall a. (String -> Either String a) -> ReadM a eitherReader String -> Either String a forall a. (Read a, FromText a) => String -> Either String a fromStr