Safe Haskell | None |
---|---|
Language | Haskell2010 |
promoted io functions
Synopsis
- data ReadFile p
- data ReadFileBinary p
- data FileExists p
- data ReadDir p
- data DirExists p
- data AppendFile (s :: Symbol) p
- data WriteFile (s :: Symbol) p
- data WriteFile' (s :: Symbol) p
- data Stdout p
- data Stderr p
- data Stdin
- type ReadIO (t :: Type) = ReadIO' t "Enter value"
- type ReadIO' (t :: Type) s = Stdout (s <> ":") >> (Stdin >> ReadP t Id)
- data ReadEnv p
- data ReadEnvAll
- data TimeUtc
- data TimeZt
- data GenIO
- data GenPure p
- data GenNext p
- data GenSplit p
- data GenRange p
- data RandomNext (t :: Type) p
- data RandomList n (t :: Type) p
- data RandomRNext (t :: Type) p q r
- data RandomRList n (t :: Type) p q r
file handling
similar to readFile
>>>
pz @(ReadFile "LICENSE" >> 'Just Id >> Len > 0) ()
Val True
>>>
pz @(FileExists "xyzzy") ()
Val False
data ReadFileBinary p #
similar to readFile
Instances
(PP p x ~ String, P p x) => P (ReadFileBinary p :: Type) x # | |
Defined in Predicate.Data.IO type PP (ReadFileBinary p) x :: Type # eval :: MonadEval m => proxy (ReadFileBinary p) -> POpts -> x -> m (TT (PP (ReadFileBinary p) x)) # | |
Show (ReadFileBinary p) # | |
Defined in Predicate.Data.IO showsPrec :: Int -> ReadFileBinary p -> ShowS # show :: ReadFileBinary p -> String # showList :: [ReadFileBinary p] -> ShowS # | |
type PP (ReadFileBinary p :: Type) x # | |
Defined in Predicate.Data.IO |
data FileExists p #
similar to doesFileExist
Instances
P (FileExistsT p) x => P (FileExists p :: Type) x # | |
Defined in Predicate.Data.IO type PP (FileExists p) x :: Type # eval :: MonadEval m => proxy (FileExists p) -> POpts -> x -> m (TT (PP (FileExists p) x)) # | |
Show (FileExists p) # | |
Defined in Predicate.Data.IO showsPrec :: Int -> FileExists p -> ShowS # show :: FileExists p -> String # showList :: [FileExists p] -> ShowS # | |
type PP (FileExists p :: Type) x # | |
Defined in Predicate.Data.IO |
similar to listDirectory
similar to doesDirectoryExist
>>>
pz @(DirExists ".") ()
Val True
>>>
pz @(DirExists "xxy") ()
Val False
data AppendFile (s :: Symbol) p #
append to a file
Instances
P (AppendFileT s p) x => P (AppendFile s p :: Type) x # | |
Defined in Predicate.Data.IO type PP (AppendFile s p) x :: Type # eval :: MonadEval m => proxy (AppendFile s p) -> POpts -> x -> m (TT (PP (AppendFile s p) x)) # | |
Show (AppendFile s p) # | |
Defined in Predicate.Data.IO showsPrec :: Int -> AppendFile s p -> ShowS # show :: AppendFile s p -> String # showList :: [AppendFile s p] -> ShowS # | |
type PP (AppendFile s p :: Type) x # | |
Defined in Predicate.Data.IO |
data WriteFile (s :: Symbol) p #
write to file, without overwriting
data WriteFile' (s :: Symbol) p #
write to file, overwriting if needed
Instances
P (WriteFileT' s p) x => P (WriteFile' s p :: Type) x # | |
Defined in Predicate.Data.IO type PP (WriteFile' s p) x :: Type # eval :: MonadEval m => proxy (WriteFile' s p) -> POpts -> x -> m (TT (PP (WriteFile' s p) x)) # | |
Show (WriteFile' s p) # | |
Defined in Predicate.Data.IO showsPrec :: Int -> WriteFile' s p -> ShowS # show :: WriteFile' s p -> String # showList :: [WriteFile' s p] -> ShowS # | |
type PP (WriteFile' s p :: Type) x # | |
Defined in Predicate.Data.IO |
screen
write a string value to stdout
write a string value to stderr
read a value from stdin
type ReadIO (t :: Type) = ReadIO' t "Enter value" #
read in a value of a given type from stdin with a prompt: similar to readIO
environment
read an environment variable: similar to getEnv
>>>
pz @(ReadEnv "PATH" >> 'Just Id >> 'True) ()
Val True
data ReadEnvAll #
read all the environment variables as key value pairs: similar to getEnvironment
Instances
Show ReadEnvAll # | |
Defined in Predicate.Data.IO showsPrec :: Int -> ReadEnvAll -> ShowS # show :: ReadEnvAll -> String # showList :: [ReadEnvAll] -> ShowS # | |
P ReadEnvAll a # | |
Defined in Predicate.Data.IO type PP ReadEnvAll a :: Type # eval :: MonadEval m => proxy ReadEnvAll -> POpts -> a -> m (TT (PP ReadEnvAll a)) # | |
type PP ReadEnvAll a # | |
Defined in Predicate.Data.IO |
date time
get the current time using UTCTime
get the current time using ZonedTime
random
generate a random number: see newStdGen
similar to mkStdGen
>>>
pz @(GenPure Id) 1234
Val 1235 1
similar to next
similar to split
similar to genRange
data RandomNext (t :: Type) p #
get the next random number of type t
using generator r
: similar to random
>>>
pz @(UnfoldN 5 (RandomNext Bool Id) Id) (mkStdGen 3)
Val [True,True,False,True,True]
Instances
(Random t, P p x, Show (PP p x), RandomGen (PP p x)) => P (RandomNext t p :: Type) x # | |
Defined in Predicate.Data.IO type PP (RandomNext t p) x :: Type # eval :: MonadEval m => proxy (RandomNext t p) -> POpts -> x -> m (TT (PP (RandomNext t p) x)) # | |
Show (RandomNext t p) # | |
Defined in Predicate.Data.IO showsPrec :: Int -> RandomNext t p -> ShowS # show :: RandomNext t p -> String # showList :: [RandomNext t p] -> ShowS # | |
type PP (RandomNext t p :: Type) x # | |
Defined in Predicate.Data.IO |
data RandomList n (t :: Type) p #
get a list of n
random numbers of type t
using generator p
: similar to randoms
>>>
pz @(RandomList 10 Bool Id) (mkStdGen 4)
Val ([True,True,False,True,True,True,True,False,False,True],2036574526 1336516156)
Instances
P (RandomListT n t p) x => P (RandomList n t p :: Type) x # | |
Defined in Predicate.Data.IO type PP (RandomList n t p) x :: Type # eval :: MonadEval m => proxy (RandomList n t p) -> POpts -> x -> m (TT (PP (RandomList n t p) x)) # | |
Show (RandomList n t p) # | |
Defined in Predicate.Data.IO showsPrec :: Int -> RandomList n t p -> ShowS # show :: RandomList n t p -> String # showList :: [RandomList n t p] -> ShowS # | |
type PP (RandomList n t p :: Type) x # | |
Defined in Predicate.Data.IO |
data RandomRNext (t :: Type) p q r #
get the next random number of type t
in range between p
and q
using generator r
: similar to randomR
>>>
pz @(Foldl (Fst >> Second (RandomRNext Int 1 100 Id) >> '(L21 :+ Fst, L22)) '( MEmptyT [Int] ,Id) (1...5)) (mkStdGen 3)
Val ([12,26,33,94,64],781515869 652912057)
>>>
pz @(UnfoldN 10 (RandomRNext _ (C "A") (C "H") Id) Id) (mkStdGen 3)
Val "DBABDDEEEA"
Instances
(Random t, P r x, RandomGen (PP r x), Show (PP r x), PP p x ~ t, PP q x ~ t, P p x, P q x) => P (RandomRNext t p q r :: Type) x # | |
Defined in Predicate.Data.IO type PP (RandomRNext t p q r) x :: Type # eval :: MonadEval m => proxy (RandomRNext t p q r) -> POpts -> x -> m (TT (PP (RandomRNext t p q r) x)) # | |
Show (RandomRNext t p q r) # | |
Defined in Predicate.Data.IO showsPrec :: Int -> RandomRNext t p q r -> ShowS # show :: RandomRNext t p q r -> String # showList :: [RandomRNext t p q r] -> ShowS # | |
type PP (RandomRNext t p q r :: Type) x # | |
Defined in Predicate.Data.IO |
data RandomRList n (t :: Type) p q r #
list n
random numbers of type t
in range between p
and q
using generator r
: similar to randomRs
>>>
pz @(RandomRList 10 Int 0 6 Id) (mkStdGen 1)
Val ([6,6,5,1,3,0,3,6,5,2],1244126523 1336516156)
>>>
pz @(RandomRList 10 _ (C "A") (C "F") Id) (mkStdGen 1)
Val ("EEBCBEFBEF",1244126523 1336516156)
Instances
P (RandomRListT n t p q r) x => P (RandomRList n t p q r :: Type) x # | |
Defined in Predicate.Data.IO type PP (RandomRList n t p q r) x :: Type # eval :: MonadEval m => proxy (RandomRList n t p q r) -> POpts -> x -> m (TT (PP (RandomRList n t p q r) x)) # | |
Show (RandomRList n t p q r) # | |
Defined in Predicate.Data.IO showsPrec :: Int -> RandomRList n t p q r -> ShowS # show :: RandomRList n t p q r -> String # showList :: [RandomRList n t p q r] -> ShowS # | |
type PP (RandomRList n t p q r :: Type) x # | |
Defined in Predicate.Data.IO |