| ghc-6.10.4: The GHC API | Contents | Index

Util

Contents

Flags dependent on the compiler build
General list processing
List operations controlled by another list
For loop
Sorting
Comparisons
Transitive closures
Strictness
Module names
Argument processing
Floating point
IO-ish utilities
Filenames and paths

Description
Highly random utility functions
Synopsis

ghciSupported :: Bool
debugIsOn :: Bool
ghciTablesNextToCode :: Bool
picIsOn :: Bool
isWindowsHost :: Bool
isWindowsTarget :: Bool
isDarwinTarget :: Bool
zipEqual :: String -> [a] -> [b] -> [(a, b)]
zipWithEqual :: String -> (a -> b -> c) -> [a] -> [b] -> [c]
zipWith3Equal :: String -> (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
zipWith4Equal :: String -> (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
zipLazy :: [a] -> [b] -> [(a, b)]
stretchZipWith :: (a -> Bool) -> b -> (a -> b -> c) -> [a] -> [b] -> [c]
unzipWith :: (a -> b -> c) -> [(a, b)] -> [c]
mapFst :: (a -> c) -> [(a, b)] -> [(c, b)]
mapSnd :: (b -> c) -> [(a, b)] -> [(a, c)]
mapAndUnzip :: (a -> (b, c)) -> [a] -> ([b], [c])
mapAndUnzip3 :: (a -> (b, c, d)) -> [a] -> ([b], [c], [d])
nOfThem :: Int -> a -> [a]
filterOut :: (a -> Bool) -> [a] -> [a]
partitionWith :: (a -> Either b c) -> [a] -> ([b], [c])
splitEithers :: [Either a b] -> ([a], [b])
foldl1'
foldl2 :: (acc -> a -> b -> acc) -> acc -> [a] -> [b] -> acc
count :: (a -> Bool) -> [a] -> Int
all2 :: (a -> b -> Bool) -> [a] -> [b] -> Bool
lengthExceeds :: [a] -> Int -> Bool
lengthIs :: [a] -> Int -> Bool
lengthAtLeast :: [a] -> Int -> Bool
listLengthCmp :: [a] -> Int -> Ordering
atLength :: ([a] -> b) -> (Int -> b) -> [a] -> Int -> b
equalLength :: [a] -> [b] -> Bool
compareLength :: [a] -> [b] -> Ordering
isSingleton :: [a] -> Bool
only :: [a] -> a
singleton :: a -> [a]
notNull :: [a] -> Bool
snocView :: [a] -> Maybe ([a], a)
isIn :: Eq a => String -> a -> [a] -> Bool
isn'tIn :: Eq a => String -> a -> [a] -> Bool
takeList :: [b] -> [a] -> [a]
dropList :: [b] -> [a] -> [a]
splitAtList :: [b] -> [a] -> ([a], [a])
split :: Char -> String -> [String]
dropTail :: Int -> [a] -> [a]
nTimes :: Int -> (a -> a) -> a -> a
sortLe :: (a -> a -> Bool) -> [a] -> [a]
sortWith :: Ord b => (a -> b) -> [a] -> [a]
on :: (a -> a -> Ordering) -> (b -> a) -> b -> b -> Ordering
isEqual :: Ordering -> Bool
eqListBy :: (a -> a -> Bool) -> [a] -> [a] -> Bool
thenCmp :: Ordering -> Ordering -> Ordering
cmpList :: (a -> a -> Ordering) -> [a] -> [a] -> Ordering
maybePrefixMatch :: String -> String -> Maybe String
removeSpaces :: String -> String
transitiveClosure :: (a -> [a]) -> (a -> a -> Bool) -> [a] -> [a]
seqList :: [a] -> b -> b
looksLikeModuleName :: String -> Bool
getCmd :: String -> Either String (String, String)
toCmdArgs :: String -> Either String (String, [String])
toArgs :: String -> Either String [String]
readRational :: String -> Rational
createDirectoryHierarchy :: FilePath -> IO ()
doesDirNameExist :: FilePath -> IO Bool
modificationTimeIfExists :: FilePath -> IO (Maybe ClockTime)
global :: a -> IORef a
consIORef :: IORef [a] -> a -> IO ()
type Suffix = String
splitLongestPrefix :: String -> (Char -> Bool) -> (String, String)
escapeSpaces :: String -> String
parseSearchPath :: String -> [FilePath]

data Direction

= Forwards
| Backwards

reslash :: Direction -> FilePath -> FilePath

Flags dependent on the compiler build
ghciSupported :: Bool
debugIsOn :: Bool
ghciTablesNextToCode :: Bool
picIsOn :: Bool
isWindowsHost :: Bool
isWindowsTarget :: Bool
isDarwinTarget :: Bool
General list processing
zipEqual :: String -> [a] -> [b] -> [(a, b)]
zipWithEqual :: String -> (a -> b -> c) -> [a] -> [b] -> [c]
zipWith3Equal :: String -> (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
zipWith4Equal :: String -> (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
zipLazy :: [a] -> [b] -> [(a, b)]
`zipLazy` is a kind of `zip` that is lazy in the second list (observe the ~)
stretchZipWith :: (a -> Bool) -> b -> (a -> b -> c) -> [a] -> [b] -> [c]
`stretchZipWith p z f xs ys` stretches `ys` by inserting `z` in the places where `p` returns `True`
unzipWith :: (a -> b -> c) -> [(a, b)] -> [c]
mapFst :: (a -> c) -> [(a, b)] -> [(c, b)]
mapSnd :: (b -> c) -> [(a, b)] -> [(a, c)]
mapAndUnzip :: (a -> (b, c)) -> [a] -> ([b], [c])
mapAndUnzip3 :: (a -> (b, c, d)) -> [a] -> ([b], [c], [d])
nOfThem :: Int -> a -> [a]
filterOut :: (a -> Bool) -> [a] -> [a]
Like filter, only it reverses the sense of the test
partitionWith :: (a -> Either b c) -> [a] -> ([b], [c])
Uses a function to determine which of two output lists an input element should join
splitEithers :: [Either a b] -> ([a], [b])
Teases a list of `Either`s apart into two lists
foldl1'
foldl2 :: (acc -> a -> b -> acc) -> acc -> [a] -> [b] -> acc
count :: (a -> Bool) -> [a] -> Int
all2 :: (a -> b -> Bool) -> [a] -> [b] -> Bool
lengthExceeds :: [a] -> Int -> Bool

     (lengthExceeds xs n) = (length xs > n)

lengthIs :: [a] -> Int -> Bool
lengthAtLeast :: [a] -> Int -> Bool
listLengthCmp :: [a] -> Int -> Ordering
atLength :: ([a] -> b) -> (Int -> b) -> [a] -> Int -> b

`atLength atLen atEnd ls n` unravels list `ls` to position `n`. Precisely:

      atLength atLenPred atEndPred ls n
       | n < 0         = atLenPred n
       | length ls < n = atEndPred (n - length ls)
       | otherwise     = atLenPred (drop n ls)

equalLength :: [a] -> [b] -> Bool
compareLength :: [a] -> [b] -> Ordering
isSingleton :: [a] -> Bool
only :: [a] -> a
singleton :: a -> [a]
notNull :: [a] -> Bool
snocView :: [a] -> Maybe ([a], a)
isIn :: Eq a => String -> a -> [a] -> Bool
isn'tIn :: Eq a => String -> a -> [a] -> Bool
List operations controlled by another list
takeList :: [b] -> [a] -> [a]
dropList :: [b] -> [a] -> [a]
splitAtList :: [b] -> [a] -> ([a], [a])
split :: Char -> String -> [String]
dropTail :: Int -> [a] -> [a]
For loop
nTimes :: Int -> (a -> a) -> a -> a
Compose a function with itself n times. (nth rather than twice)
Sorting
sortLe :: (a -> a -> Bool) -> [a] -> [a]
sortWith :: Ord b => (a -> b) -> [a] -> [a]
on :: (a -> a -> Ordering) -> (b -> a) -> b -> b -> Ordering
Comparisons
isEqual :: Ordering -> Bool
eqListBy :: (a -> a -> Bool) -> [a] -> [a] -> Bool
thenCmp :: Ordering -> Ordering -> Ordering
cmpList :: (a -> a -> Ordering) -> [a] -> [a] -> Ordering
maybePrefixMatch :: String -> String -> Maybe String
removeSpaces :: String -> String
Transitive closures
transitiveClosure :: (a -> [a]) -> (a -> a -> Bool) -> [a] -> [a]
Strictness
seqList :: [a] -> b -> b
Module names
looksLikeModuleName :: String -> Bool
Argument processing
getCmd :: String -> Either String (String, String)
toCmdArgs :: String -> Either String (String, [String])
toArgs :: String -> Either String [String]
Floating point
readRational :: String -> Rational
IO-ish utilities
createDirectoryHierarchy :: FilePath -> IO ()
doesDirNameExist :: FilePath -> IO Bool
modificationTimeIfExists :: FilePath -> IO (Maybe ClockTime)
global :: a -> IORef a
consIORef :: IORef [a] -> a -> IO ()
Filenames and paths
type Suffix = String
splitLongestPrefix :: String -> (Char -> Bool) -> (String, String)
escapeSpaces :: String -> String
parseSearchPath :: String -> [FilePath]
The function splits the given string to substrings using the `searchPathSeparator`.
data Direction

Constructors

Forwards |
Backwards |

reslash :: Direction -> FilePath -> FilePath
Produced by Haddock version 2.4.2