Hoogle Search
Within LTS Haskell 24.33 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
reading :: MonadRCU s m => Reading m a -> m arcu Control.Concurrent.RCU.QSBR Run a read-side critical section
-
Opens a temporary file on the system's EDITOR and returns the resulting edits See https://github.com/yamadapc/haskell-read-editor for more information
-
read-editor System.ReadEditor Opens a file in the sytem's editor and returns it's contents after it's saved.
readEditorWith :: String -> IO Stringread-editor System.ReadEditor Opens a file, fills it some content and returns it's contents after it's saved.
-
Functions for safely reading environment variables. Please see README.md
readEnv :: (MonadIO m, Read a) => String -> m (Maybe a)read-env-var System.ReadEnvVar Lookup a value from an environment variable and read it in with readMaybe. Read an environment variable that exists:
>>> setEnv "TEST_ENV_VAR" "2000" >>> readEnv "TEST_ENV_VAR" :: IO (Maybe Int) Just 2000
Try reading an environment variable that does not exist. Returns Nothing:>>> readEnv "THIS_ENV_VAR_WILL_NOT_EXIST" :: IO (Maybe Int) Nothing
Try reading an environment variable that cannot be read. Returns Nothing:>>> setEnv "BAD_ENV_VAR" "not an int" >>> readEnv "BAD_ENV_VAR" :: IO (Maybe Int) Nothing
Note that this DOES NOT read string values as one might expect:>>> setEnv "TEST_ENV_VAR2" "some string 1" >>> readEnv "TEST_ENV_VAR2" :: IO (Maybe String) Nothing
It will read string values as if they were Haskell strings:>>> setEnv "TEST_ENV_VAR3" "\"some string 1\"" >>> readEnv "TEST_ENV_VAR3" :: IO (Maybe String) Just "some string 1"
readEnvDef :: (MonadIO m, Read a) => String -> a -> m aread-env-var System.ReadEnvVar Lookup a value from an environment variable and read it in with readMaybe. If the environment variable doesn't exist, or it can't be read, return the default value. Like readEnv but with a default value. Read an environment variable that exists:
>>> setEnv "TEST_ENV_VAR1" "1000" >>> readEnvDef "TEST_ENV_VAR1" 5 :: IO Int 1000
Try reading an environment variable that does not exist. Returns the default value:>>> readEnvDef "THIS_ENV_VAR_WILL_NOT_EXIST" 5 :: IO Int 5
Try reading an environment variable that cannot be read. Returns the default value:>>> setEnv "BAD_ENV_VAR" "not an int" >>> readEnvDef "BAD_ENV_VAR" 10 :: IO Int 10
Note that this DOES NOT read string values as one might expect:>>> setEnv "TEST_ENV_VAR2" "some string 1" >>> readEnvDef "TEST_ENV_VAR2" "def val" :: IO String "def val"
It will read string values as if they were Haskell strings:>>> setEnv "TEST_ENV_VAR3" "\"some string 1\"" >>> readEnvDef "TEST_ENV_VAR3" "def val" :: IO String "some string 1"
readEnvEx :: (MonadIO m, Read a, MonadThrow m) => String -> m (Maybe a)read-env-var System.ReadEnvVar Lookup a value from an environment variable and read it in with readMaybe. Throw an EnvVarDoesNotExistException if the environment variable does not exist. The exception is thrown with throwM from MonadThrow. Read an environment variable that exists:
>>> setEnv "TEST_ENV_VAR" "2000" >>> readEnvEx "TEST_ENV_VAR" :: IO (Maybe Int) Just 2000
Try reading an environment variable that does not exist. Throws EnvVarDoesNotExistException:>>> readEnvEx "THIS_ENV_VAR_WILL_NOT_EXIST" :: IO (Maybe Int) *** Exception: EnvVarDoesNotExistException "THIS_ENV_VAR_WILL_NOT_EXIST"
Try reading an environment variable that cannot be read. Returns Nothing:>>> setEnv "BAD_ENV_VAR" "not an int" >>> readEnvEx "BAD_ENV_VAR" :: IO (Maybe Int) Nothing
Note that this DOES NOT read string values as one might expect:>>> setEnv "TEST_ENV_VAR2" "some string 1" >>> readEnvEx "TEST_ENV_VAR2" :: IO (Maybe String) Nothing
It will read string values as if they were Haskell strings:>>> setEnv "TEST_ENV_VAR3" "\"some string 1\"" >>> readEnvEx "TEST_ENV_VAR3" :: IO (Maybe String) Just "some string 1"
readEnvEx' :: (MonadIO m, Read a, MonadThrow m) => String -> m aread-env-var System.ReadEnvVar Just like readEnvEx, but also throw an exception when the environment variable cannot be read. This can throw both EnvVarCannotBeReadException and EnvVarDoesNotExistException with throwM. Read an environment variable that exists:
>>> setEnv "TEST_ENV_VAR" "2000" >>> readEnvEx' "TEST_ENV_VAR" :: IO Int 2000
Try reading an environment variable that does not exist. Throws EnvVarDoesNotExistException:>>> readEnvEx' "THIS_ENV_VAR_WILL_NOT_EXIST" :: IO Int *** Exception: EnvVarDoesNotExistException "THIS_ENV_VAR_WILL_NOT_EXIST"
Try reading an environment variable that cannot be read. Throws EnvVarCannotBeReadException:>>> setEnv "BAD_ENV_VAR" "not an int" >>> readEnvEx' "BAD_ENV_VAR" :: IO Int *** Exception: EnvVarCannotBeReadException "BAD_ENV_VAR"
Note that this DOES NOT read string values as one might expect:>>> setEnv "TEST_ENV_VAR2" "some string 1" >>> readEnvEx' "TEST_ENV_VAR2" :: IO String *** Exception: EnvVarCannotBeReadException "TEST_ENV_VAR2"
It will read string values as if they were Haskell strings:>>> setEnv "TEST_ENV_VAR3" "\"some string 1\"" >>> readEnvEx' "TEST_ENV_VAR3" :: IO String "some string 1"
-
Reading from Text and ByteString Provides a Readable type class for reading data types from ByteString and Text. Also includes efficient implementations for common data types.