predicate-typed-0.7.4.2: Predicates, Refinement types and Dsl
Safe HaskellNone
LanguageHaskell2010

Predicate.Data.IO

Description

promoted io functions

Synopsis

file handling

data ReadFile p Source #

similar to readFile

>>> pz @(ReadFile "LICENSE" >> 'Just Id >> Len > 0) ()
Val True
>>> pz @(FileExists "xyzzy") ()
Val False

Instances

Instances details
(PP p x ~ String, P p x) => P (ReadFile p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (ReadFile p) x Source #

Methods

eval :: MonadEval m => proxy (ReadFile p) -> POpts -> x -> m (TT (PP (ReadFile p) x)) Source #

Show (ReadFile p) Source # 
Instance details

Defined in Predicate.Data.IO

Methods

showsPrec :: Int -> ReadFile p -> ShowS #

show :: ReadFile p -> String #

showList :: [ReadFile p] -> ShowS #

type PP (ReadFile p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

type PP (ReadFile p :: Type) x = Maybe String

data ReadFileBinary p Source #

similar to readFile

Instances

Instances details
(PP p x ~ String, P p x) => P (ReadFileBinary p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (ReadFileBinary p) x Source #

Methods

eval :: MonadEval m => proxy (ReadFileBinary p) -> POpts -> x -> m (TT (PP (ReadFileBinary p) x)) Source #

Show (ReadFileBinary p) Source # 
Instance details

Defined in Predicate.Data.IO

type PP (ReadFileBinary p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

data FileExists p Source #

similar to doesFileExist

Instances

Instances details
P (FileExistsT p) x => P (FileExists p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (FileExists p) x Source #

Methods

eval :: MonadEval m => proxy (FileExists p) -> POpts -> x -> m (TT (PP (FileExists p) x)) Source #

Show (FileExists p) Source # 
Instance details

Defined in Predicate.Data.IO

type PP (FileExists p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

type PP (FileExists p :: Type) x

data ReadDir p Source #

similar to listDirectory

Instances

Instances details
(PP p x ~ String, P p x) => P (ReadDir p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (ReadDir p) x Source #

Methods

eval :: MonadEval m => proxy (ReadDir p) -> POpts -> x -> m (TT (PP (ReadDir p) x)) Source #

Show (ReadDir p) Source # 
Instance details

Defined in Predicate.Data.IO

Methods

showsPrec :: Int -> ReadDir p -> ShowS #

show :: ReadDir p -> String #

showList :: [ReadDir p] -> ShowS #

type PP (ReadDir p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

type PP (ReadDir p :: Type) x = Maybe [FilePath]

data DirExists p Source #

similar to doesDirectoryExist

>>> pz @(DirExists ".") ()
Val True
>>> pz @(DirExists "xxy") ()
Val False

Instances

Instances details
P (DirExistsT p) x => P (DirExists p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (DirExists p) x Source #

Methods

eval :: MonadEval m => proxy (DirExists p) -> POpts -> x -> m (TT (PP (DirExists p) x)) Source #

Show (DirExists p) Source # 
Instance details

Defined in Predicate.Data.IO

type PP (DirExists p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

type PP (DirExists p :: Type) x

data AppendFile (s :: Symbol) p Source #

append to a file

Instances

Instances details
P (AppendFileT s p) x => P (AppendFile s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (AppendFile s p) x Source #

Methods

eval :: MonadEval m => proxy (AppendFile s p) -> POpts -> x -> m (TT (PP (AppendFile s p) x)) Source #

Show (AppendFile s p) Source # 
Instance details

Defined in Predicate.Data.IO

Methods

showsPrec :: Int -> AppendFile s p -> ShowS #

show :: AppendFile s p -> String #

showList :: [AppendFile s p] -> ShowS #

type PP (AppendFile s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

type PP (AppendFile s p :: Type) x

data WriteFile (s :: Symbol) p Source #

write to file, without overwriting

Instances

Instances details
P (WriteFileT s p) x => P (WriteFile s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (WriteFile s p) x Source #

Methods

eval :: MonadEval m => proxy (WriteFile s p) -> POpts -> x -> m (TT (PP (WriteFile s p) x)) Source #

Show (WriteFile s p) Source # 
Instance details

Defined in Predicate.Data.IO

Methods

showsPrec :: Int -> WriteFile s p -> ShowS #

show :: WriteFile s p -> String #

showList :: [WriteFile s p] -> ShowS #

type PP (WriteFile s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

type PP (WriteFile s p :: Type) x

data WriteFile' (s :: Symbol) p Source #

write to file, overwriting if needed

Instances

Instances details
P (WriteFileT' s p) x => P (WriteFile' s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (WriteFile' s p) x Source #

Methods

eval :: MonadEval m => proxy (WriteFile' s p) -> POpts -> x -> m (TT (PP (WriteFile' s p) x)) Source #

Show (WriteFile' s p) Source # 
Instance details

Defined in Predicate.Data.IO

Methods

showsPrec :: Int -> WriteFile' s p -> ShowS #

show :: WriteFile' s p -> String #

showList :: [WriteFile' s p] -> ShowS #

type PP (WriteFile' s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

type PP (WriteFile' s p :: Type) x

screen

data Stdout p Source #

write a string value to stdout

Instances

Instances details
P (StdoutT p) x => P (Stdout p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (Stdout p) x Source #

Methods

eval :: MonadEval m => proxy (Stdout p) -> POpts -> x -> m (TT (PP (Stdout p) x)) Source #

Show (Stdout p) Source # 
Instance details

Defined in Predicate.Data.IO

Methods

showsPrec :: Int -> Stdout p -> ShowS #

show :: Stdout p -> String #

showList :: [Stdout p] -> ShowS #

type PP (Stdout p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

type PP (Stdout p :: Type) x

data Stderr p Source #

write a string value to stderr

Instances

Instances details
P (StderrT p) x => P (Stderr p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (Stderr p) x Source #

Methods

eval :: MonadEval m => proxy (Stderr p) -> POpts -> x -> m (TT (PP (Stderr p) x)) Source #

Show (Stderr p) Source # 
Instance details

Defined in Predicate.Data.IO

Methods

showsPrec :: Int -> Stderr p -> ShowS #

show :: Stderr p -> String #

showList :: [Stderr p] -> ShowS #

type PP (Stderr p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

type PP (Stderr p :: Type) x

data Stdin Source #

read a value from stdin

Instances

Instances details
Show Stdin Source # 
Instance details

Defined in Predicate.Data.IO

Methods

showsPrec :: Int -> Stdin -> ShowS #

show :: Stdin -> String #

showList :: [Stdin] -> ShowS #

P Stdin x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP Stdin x Source #

Methods

eval :: MonadEval m => proxy Stdin -> POpts -> x -> m (TT (PP Stdin x)) Source #

type PP Stdin x Source # 
Instance details

Defined in Predicate.Data.IO

type PP Stdin x = String

type ReadIO (t :: Type) = ReadIO' t "Enter value" Source #

read in a value of a given type from stdin with a prompt: similar to readIO

type ReadIO' (t :: Type) s = Stdout (s <> ":") >> (Stdin >> ReadP t Id) Source #

similar to ReadIO but allow the user to specify the prompt string s

environment

data ReadEnv p Source #

read an environment variable: similar to getEnv

>>> pz @(ReadEnv "PATH" >> 'Just Id >> 'True) ()
Val True

Instances

Instances details
(PP p x ~ String, P p x) => P (ReadEnv p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (ReadEnv p) x Source #

Methods

eval :: MonadEval m => proxy (ReadEnv p) -> POpts -> x -> m (TT (PP (ReadEnv p) x)) Source #

Show (ReadEnv p) Source # 
Instance details

Defined in Predicate.Data.IO

Methods

showsPrec :: Int -> ReadEnv p -> ShowS #

show :: ReadEnv p -> String #

showList :: [ReadEnv p] -> ShowS #

type PP (ReadEnv p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

type PP (ReadEnv p :: Type) x = Maybe String

data ReadEnvAll Source #

read all the environment variables as key value pairs: similar to getEnvironment

Instances

Instances details
Show ReadEnvAll Source # 
Instance details

Defined in Predicate.Data.IO

P ReadEnvAll a Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP ReadEnvAll a Source #

Methods

eval :: MonadEval m => proxy ReadEnvAll -> POpts -> a -> m (TT (PP ReadEnvAll a)) Source #

type PP ReadEnvAll a Source # 
Instance details

Defined in Predicate.Data.IO

type PP ReadEnvAll a = [(String, String)]

date time

data TimeUtc Source #

get the current time using UTCTime

Instances

Instances details
Show TimeUtc Source # 
Instance details

Defined in Predicate.Data.IO

P TimeUtc a Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP TimeUtc a Source #

Methods

eval :: MonadEval m => proxy TimeUtc -> POpts -> a -> m (TT (PP TimeUtc a)) Source #

type PP TimeUtc a Source # 
Instance details

Defined in Predicate.Data.IO

type PP TimeUtc a = UTCTime

data TimeZt Source #

get the current time using ZonedTime

Instances

Instances details
Show TimeZt Source # 
Instance details

Defined in Predicate.Data.IO

P TimeZt a Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP TimeZt a Source #

Methods

eval :: MonadEval m => proxy TimeZt -> POpts -> a -> m (TT (PP TimeZt a)) Source #

type PP TimeZt a Source # 
Instance details

Defined in Predicate.Data.IO