Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- rmList :: Ord a => [a] -> [a] -> [a]
- data Library = Library {}
- mergeLibraries :: [Library] -> Library
- libraryToGhciArgs :: Library -> ([String], [String], [String])
- dropEnd :: Int -> [a] -> [a]
- findCabalPackage :: HasCallStack => String -> IO FilePath
- compatPrettyShow :: FilePath -> FilePath
- solveCondTree :: CondTree ConfVar c a -> [(c, a)]
- buildGhc :: Version
- extractSpecificCabalLibrary :: Maybe String -> FilePath -> IO Library
- extractCabalLibrary :: FilePath -> IO Library
Documentation
rmList :: Ord a => [a] -> [a] -> [a] Source #
Efficient implementation of set like deletion on lists
>>>
"abcd" `rmList` "ad"
"bc">>>
"aaabcccd" `rmList` "ad"
"bccc"
Library | |
|
mergeLibraries :: [Library] -> Library Source #
Merge multiple libraries into one, by concatenating all their fields.
libraryToGhciArgs :: Library -> ([String], [String], [String]) Source #
Convert a Library to arguments suitable to be passed to GHCi.
dropEnd :: Int -> [a] -> [a] Source #
Drop a number of elements from the end of the list.
dropEnd 3 "hello" == "he" dropEnd 5 "bye" == "" dropEnd (-1) "bye" == "bye" \i xs -> dropEnd i xs `isPrefixOf` xs \i xs -> length (dropEnd i xs) == max 0 (length xs - max 0 i) \i -> take 3 (dropEnd 5 [i..]) == take 3 [i..]
findCabalPackage :: HasCallStack => String -> IO FilePath Source #
Searches for a file called package.cabal
, where package
is given as an
argument. It will look for it in the current directory. If it can't find it
there, it will traverse up until it finds the file or a file called
cabal.project
. In case of the latter, it will traverse down recursively
until it encounters a package.cabal
.
The returned path points to the package.cabal
. Errors if it could not
find package.cabal
anywhere, or when it found multiple.
compatPrettyShow :: FilePath -> FilePath Source #
solveCondTree :: CondTree ConfVar c a -> [(c, a)] Source #
Traverse the given tree, solve predicates in branches, and return its contents.
XXX: Branches guarded by Cabal flags are ignored. I'm not sure where we should get this info from.