{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
module System.Environment.FromEnv.TryParse
(
TryParse (..)
)
where
import Data.Text (Text)
import qualified Data.Text as T
import Text.Read (readMaybe)
class TryParse a where
tryParse :: String -> Maybe a
instance TryParse Int where
tryParse :: String -> Maybe Int
tryParse = forall a. Read a => String -> Maybe a
readMaybe
instance TryParse [Char] where
tryParse :: String -> Maybe String
tryParse = forall a. a -> Maybe a
Just
instance TryParse Char where
tryParse :: String -> Maybe Char
tryParse [Char
c] = forall a. a -> Maybe a
Just Char
c
tryParse String
_ = forall a. Maybe a
Nothing
instance TryParse Text where
tryParse :: String -> Maybe Text
tryParse = forall a. a -> Maybe a
Just forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Text
T.pack