moltapContentsIndex
Moltap.Util.Util
Portabilityportable
Stabilityexperimental
Maintainertwanvl@gmail.com
Contents
Sorted lists
Relations
ShowS
Strings
Files
IO Monad
Description
Utility functions used throughout Moltap
Synopsis
iud :: Ord a => [a] -> [a] -> ([a], [a], [a], [a])
type Relation a = Map a [a]
symmClose :: Ord a => Relation a -> Relation a
reflClose :: Ord a => [a] -> Relation a -> Relation a
transClose :: Ord a => Bool -> [a] -> Relation a -> Relation a
transCloseAt :: Ord a => Bool -> a -> Relation a -> Set a
catShows :: [ShowS] -> ShowS
showListWith :: (a -> ShowS) -> [a] -> ShowS
showListWithSep :: String -> (a -> ShowS) -> [a] -> ShowS
escapeString :: String -> String
toFileName :: String -> FilePath
makeFileReadable :: FilePath -> IO ()
errorIO :: MonadIO m => String -> m a
parIO :: IO a -> IO a -> IO a
timeout :: Int -> IO a -> IO (Maybe a)
timeoutWith :: Int -> IO a -> IO a -> IO a
Sorted lists
iud :: Ord a => [a] -> [a] -> ([a], [a], [a], [a])

Intersection, union and differences of sorted lists

 iud a b = (intersection, union, only in a, only in b)
Relations
type Relation a = Map a [a]
A binary relation from a to a
symmClose :: Ord a => Relation a -> Relation a
Symmetric closure of a relation
reflClose :: Ord a => [a] -> Relation a -> Relation a
Reflexive closure of a relation
transClose :: Ord a => Bool -> [a] -> Relation a -> Relation a
(Reflexive-)transitive closure of a relation
transCloseAt :: Ord a => Bool -> a -> Relation a -> Set a
A single element from the (reflexive-)transitive closure
ShowS
catShows :: [ShowS] -> ShowS
Concatenate a list of ShowSs
showListWith :: (a -> ShowS) -> [a] -> ShowS
Show a list by applying a function to each element
showListWithSep :: String -> (a -> ShowS) -> [a] -> ShowS
Show a list by applying a function to each element, and putting a separator between them
Strings
escapeString :: String -> String
Escape a string for dot or json output
Files
toFileName :: String -> FilePath
Turn a string into something that is safe to use as a filename. The string will uniquely determine the filename.
makeFileReadable :: FilePath -> IO ()
Make a file readable to all users
IO Monad
errorIO :: MonadIO m => String -> m a
error in the IO monad
parIO :: IO a -> IO a -> IO a
Perform two actions in parallel, use the result from the one that finishes first. stolen from http://www.haskell.org/pipermail/haskell-cafe/2005-January/008314.html
timeout :: Int -> IO a -> IO (Maybe a)
Run an action with a timeout (in microseconds)
timeoutWith :: Int -> IO a -> IO a -> IO a
Run an action with a timeout (in microseconds)
Produced by Haddock version 0.8