From 856392fdb7ae486078421cfa56e9ce8ca2e7ca92 Mon Sep 17 00:00:00 2001 From: Kazu Yamamoto Date: Mon, 16 Sep 2013 11:00:39 +0900 Subject: [PATCH] Using proper type aliases. --- Language/Haskell/GhcMod/CabalApi.hs | 12 ++++++------ Language/Haskell/GhcMod/GHCApi.hs | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Language/Haskell/GhcMod/CabalApi.hs b/Language/Haskell/GhcMod/CabalApi.hs index 6378d93..a916d54 100644 --- a/Language/Haskell/GhcMod/CabalApi.hs +++ b/Language/Haskell/GhcMod/CabalApi.hs @@ -44,7 +44,7 @@ fromCabalFile ghcOptions cradle = do where Just cfile = cradleCabalFile cradle -cookInfo :: [String] -> Cradle -> PackageDescription +cookInfo :: [GHCOption] -> Cradle -> PackageDescription -> ([GHCOption],[IncludeDir],[Package]) cookInfo ghcOptions cradle cabal = (gopts,idirs,depPkgs) where @@ -56,15 +56,15 @@ cookInfo ghcOptions cradle cabal = (gopts,idirs,depPkgs) idirs = includeDirectories cdir wdir $ cabalSourceDirs buildInfos depPkgs = removeThem problematicPackages $ removeMe cfile $ cabalDependPackages buildInfos -removeMe :: FilePath -> [String] -> [String] +removeMe :: FilePath -> [Package] -> [Package] removeMe cabalfile = filter (/= me) where me = dropExtension $ takeFileName cabalfile -removeThem :: [String] -> [String] -> [String] +removeThem :: [Package] -> [Package] -> [Package] removeThem badpkgs = filter (`notElem` badpkgs) -problematicPackages :: [String] +problematicPackages :: [Package] problematicPackages = [ "base-compat" -- providing "Prelude" ] @@ -72,7 +72,7 @@ problematicPackages = [ cabalBuildDirs :: [FilePath] cabalBuildDirs = ["dist/build"] -includeDirectories :: String -> String -> [FilePath] -> [String] +includeDirectories :: FilePath -> FilePath -> [FilePath] -> [FilePath] includeDirectories cdir wdir dirs = uniqueAndSort (extdirs ++ [cdir,wdir]) where extdirs = map (cdir ) $ dirs ++ cabalBuildDirs @@ -98,7 +98,7 @@ parseCabalFile file = do ---------------------------------------------------------------- -getGHCOptions :: [String] -> BuildInfo -> [String] +getGHCOptions :: [GHCOption] -> BuildInfo -> [GHCOption] getGHCOptions ghcOptions binfo = ghcOptions ++ exts ++ [lang] ++ libs ++ libDirs where exts = map (("-X" ++) . display) $ usedExtensions binfo diff --git a/Language/Haskell/GhcMod/GHCApi.hs b/Language/Haskell/GhcMod/GHCApi.hs index 2e259b3..aa07ea7 100644 --- a/Language/Haskell/GhcMod/GHCApi.hs +++ b/Language/Haskell/GhcMod/GHCApi.hs @@ -148,7 +148,7 @@ checkSlowAndSet = do ---------------------------------------------------------------- -modifyFlagsWithOpts :: GhcMonad m => DynFlags -> [String] -> m DynFlags +modifyFlagsWithOpts :: GhcMonad m => DynFlags -> [GHCOption] -> m DynFlags modifyFlagsWithOpts dflags cmdOpts = tfst <$> parseDynamicFlags dflags (map noLoc cmdOpts) where @@ -157,7 +157,7 @@ modifyFlagsWithOpts dflags cmdOpts = ---------------------------------------------------------------- -- | Set the files that GHC will load / compile. -setTargetFiles :: (GhcMonad m) => [String] -> m () +setTargetFiles :: (GhcMonad m) => [FilePath] -> m () setTargetFiles [] = error "ghc-mod: setTargetFiles: No target files given" setTargetFiles files = do targets <- forM files $ \file -> guessTarget file Nothing