diff --git a/configure.ac b/configure.ac index c2ac20f..450eb74 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ AC_ARG_WITH(hcflags, GHC=$HC GHCFLAGS= -GHC_CHECK_MODULE([System],[],[],[],[HCFLAGS="$HCFLAGS -hide-all-packages -package haskell98"]) +GHC_CHECK_MODULE([System.IO],[],[],[],[HCFLAGS="$HCFLAGS -hide-all-packages"]) AC_PROG_INSTALL AC_PATH_PROGS(SH, sh) diff --git a/src/ChaseImports.hs b/src/ChaseImports.hs index 6cd50d5..5b5f2ef 100644 --- a/src/ChaseImports.hs +++ b/src/ChaseImports.hs @@ -24,10 +24,10 @@ import RuleUtils (Tag) import DataP import CommandP import ParseLib2 -import System -import List +import System.Environment +import Data.List import qualified Unlit -import Monad +import Control.Monad import GenUtil try x = catch (x >>= return . Right) (return . Left) diff --git a/src/DataP.lhs b/src/DataP.lhs index e261d94..edface5 100644 --- a/src/DataP.lhs +++ b/src/DataP.lhs @@ -10,10 +10,8 @@ needs to be fixed. >where >import ParseLib2 ->import Char ->import List ->import Monad - +>import Data.Char +>import Data.List >data Statement = DataStmt | NewTypeStmt deriving (Eq,Show) >data Data = D { name :: Name, -- type name diff --git a/src/DrIFT.hs b/src/DrIFT.hs index 8419583..6be62e2 100644 --- a/src/DrIFT.hs +++ b/src/DrIFT.hs @@ -7,17 +7,17 @@ import ChaseImports import DataP import GenUtil import GetOpt -import Char -import IO hiding(try) -import List (partition,isSuffixOf,sort, groupBy, sortBy) -import Monad(unless) +import Data.List (partition,isSuffixOf,sort, groupBy, sortBy) +import Control.Monad(unless) import PreludData(preludeData) import Pretty import RuleUtils (commentLine,texts) import RuleUtils(Rule,Tag) import Version import qualified Rules(rules) -import qualified System +import System.IO +import System.Environment +import Data.Char data Op = OpList | OpDerive | OpVersion @@ -78,7 +78,7 @@ doList = do header = "Usage: DrIFT [OPTION...] file" main = do - argv <- System.getArgs + argv <- getArgs (env,n) <- case (getOpt Permute options argv) of (as,n,[]) -> return (foldr ($) env as ,n) (_,_,errs) -> putErrDie (concat errs ++ usageInfo header options) diff --git a/src/GenUtil.hs b/src/GenUtil.hs index 92ece00..a07b620 100644 --- a/src/GenUtil.hs +++ b/src/GenUtil.hs @@ -39,7 +39,7 @@ module GenUtil( -- ** Simple deconstruction fromLeft,fromRight,fsts,snds,splitEither,rights,lefts, -- ** System routines - exitSuccess, System.exitFailure, epoch, lookupEnv,endOfTime, + exitSuccess, exitFailure, epoch, lookupEnv,endOfTime, -- ** Random routines repMaybe, liftT2, liftT3, liftT4, @@ -91,14 +91,17 @@ module GenUtil( UniqueProducer(..) ) where -import Char(isAlphaNum, isSpace, toLower, ord) -import List(group,sort) -import List(intersperse, sortBy, groupBy) -import Monad -import qualified IO -import qualified System -import Random(StdGen, newStdGen, Random(randomR)) -import Time +import System.Time +import System.IO +import System.IO.Error +import System.Exit(exitFailure, exitWith, ExitCode(..)) +import System.Environment +import Control.Monad(join, liftM, MonadPlus, mzero) +import System.Random(StdGen, newStdGen, Random(randomR)) +import Data.Char(isAlphaNum, isSpace, toLower, ord) +import Data.List(group,sort) +import Data.List(intersperse, sortBy, groupBy) +-- import Random(StdGen, newStdGen, Random(randomR)) {-# SPECIALIZE snub :: [String] -> [String] #-} {-# SPECIALIZE snub :: [Int] -> [Int] #-} @@ -127,7 +130,7 @@ sortGroupUnderF f xs = [ (f x, xs) | xs@(x:_) <- sortGroupUnder f xs] -- | write string to standard error putErr :: String -> IO () -putErr = IO.hPutStr IO.stderr +putErr = System.IO.hPutStr System.IO.stderr -- | write string and newline to standard error putErrLn :: String -> IO () @@ -137,13 +140,13 @@ putErrLn s = putErr (s ++ "\n") -- | write string and newline to standard error, -- then exit program with failure. putErrDie :: String -> IO a -putErrDie s = putErrLn s >> System.exitFailure +putErrDie s = putErrLn s >> exitFailure -- | exit program successfully. 'exitFailure' is -- also exported from System. exitSuccess :: IO a -exitSuccess = System.exitWith System.ExitSuccess +exitSuccess = exitWith ExitSuccess {-# INLINE fromRight #-} @@ -381,7 +384,7 @@ shellQuote ss = unwords (map f ss) where -- | looks up an enviornment variable and returns it in a 'MonadPlus' rather -- than raising an exception if the variable is not set. lookupEnv :: MonadPlus m => String -> IO (m String) -lookupEnv s = catch (fmap return $ System.getEnv s) (\e -> if IO.isDoesNotExistError e then return mzero else ioError e) +lookupEnv s = catch (fmap return $ getEnv s) (\e -> if isDoesNotExistError e then return mzero else ioError e) {-# SPECIALIZE fmapLeft :: (a -> c) -> [(Either a b)] -> [(Either c b)] #-} fmapLeft :: Functor f => (a -> c) -> f (Either a b) -> f (Either c b) @@ -495,7 +498,7 @@ showDuration x = st "d" dayI ++ st "h" hourI ++ st "m" minI ++ show secI ++ "s" -- arguments are given, read stdin. getArgContents = do - as <- System.getArgs + as <- getArgs let f "-" = getContents f fn = readFile fn cs <- mapM f as diff --git a/src/GetOpt.hs b/src/GetOpt.hs index 13e7821..82ef9f9 100644 --- a/src/GetOpt.hs +++ b/src/GetOpt.hs @@ -21,7 +21,7 @@ module GetOpt ( ArgOrder(..), OptDescr(..), ArgDescr(..), usageInfo, getOpt ) where -import List(isPrefixOf) +import Data.List(isPrefixOf) data ArgOrder a -- what to do with options following non-options: = RequireOrder -- no option processing after first non-option diff --git a/src/ParseLib2.hs b/src/ParseLib2.hs index 3be9b85..730e4be 100644 --- a/src/ParseLib2.hs +++ b/src/ParseLib2.hs @@ -31,8 +31,8 @@ module ParseLib2 many1_offside,many_offside,off, opt, skipUntil, skipUntilOff,skipUntilParse,skipNest) where -import Char -import Monad +import Data.Char +import Control.Monad infixr 5 +++ diff --git a/src/Rules/Arbitrary.hs b/src/Rules/Arbitrary.hs index fa5b8f2..2dc77ac 100644 --- a/src/Rules/Arbitrary.hs +++ b/src/Rules/Arbitrary.hs @@ -1,6 +1,6 @@ module Rules.Arbitrary(rules) where -import List +import Data.List import RuleUtils rules = [ diff --git a/src/Rules/Binary.hs b/src/Rules/Binary.hs index 78585c7..9071dc4 100644 --- a/src/Rules/Binary.hs +++ b/src/Rules/Binary.hs @@ -1,6 +1,6 @@ module Rules.Binary(rules) where -import List (nub,intersperse) +import Data.List (nub,intersperse) import RuleUtils rules = [ diff --git a/src/Rules/BitsBinary.hs b/src/Rules/BitsBinary.hs index b87a189..af928f1 100644 --- a/src/Rules/BitsBinary.hs +++ b/src/Rules/BitsBinary.hs @@ -1,7 +1,7 @@ -- stub module to add your own rules. module Rules.BitsBinary(rules) where -import List (nub,intersperse) +import Data.List (nub,intersperse) import RuleUtils -- useful to have a look at this too rules = [ diff --git a/src/Rules/FunctorM.hs b/src/Rules/FunctorM.hs index 1783a8c..d157de8 100644 --- a/src/Rules/FunctorM.hs +++ b/src/Rules/FunctorM.hs @@ -1,7 +1,7 @@ -- stub module to add your own rules. module Rules.FunctorM (rules) where -import List +import Data.List import RuleUtils rules = [ diff --git a/src/Rules/Generic.hs b/src/Rules/Generic.hs index 68d13d8..3ca8e94 100644 --- a/src/Rules/Generic.hs +++ b/src/Rules/Generic.hs @@ -3,7 +3,7 @@ module Rules.Generic(rules) where -- import StandardRules import RuleUtils -import List(intersperse) +import Data.List(intersperse) rules :: [RuleDef] diff --git a/src/Rules/GhcBinary.hs b/src/Rules/GhcBinary.hs index 0fb639e..4a8177a 100644 --- a/src/Rules/GhcBinary.hs +++ b/src/Rules/GhcBinary.hs @@ -1,7 +1,7 @@ -- stub module to add your own rules. module Rules.GhcBinary (rules) where -import List (nub,intersperse) +import Data.List (nub,intersperse) import RuleUtils -- useful to have a look at this too rules = [ diff --git a/src/Rules/Monoid.hs b/src/Rules/Monoid.hs index 0fb426f..ca48a8d 100644 --- a/src/Rules/Monoid.hs +++ b/src/Rules/Monoid.hs @@ -1,7 +1,6 @@ -- stub module to add your own rules. module Rules.Monoid (rules) where -import List import RuleUtils rules = [ diff --git a/src/Rules/Standard.hs b/src/Rules/Standard.hs index 0ffbaea..a8b85d8 100644 --- a/src/Rules/Standard.hs +++ b/src/Rules/Standard.hs @@ -1,7 +1,7 @@ module Rules.Standard(rules) where import RuleUtils -import List +import Data.List import GenUtil diff --git a/src/Rules/Utility.hs b/src/Rules/Utility.hs index 56b1163..dd724fb 100644 --- a/src/Rules/Utility.hs +++ b/src/Rules/Utility.hs @@ -1,6 +1,5 @@ module Rules.Utility(rules) where import RuleUtils -import List import GenUtil rules :: [RuleDef] diff --git a/src/Rules/Xml.hs b/src/Rules/Xml.hs index 1257d04..6faa31f 100644 --- a/src/Rules/Xml.hs +++ b/src/Rules/Xml.hs @@ -1,7 +1,7 @@ -- expanded from stub module to add new rules. module Rules.Xml(rules) where -import List (nub,sortBy) +import Data.List (nub,sortBy) import RuleUtils -- useful to have a look at this too rules :: [RuleDef] diff --git a/src/Unlit.hs b/src/Unlit.hs index 45d95ae..ca1499a 100644 --- a/src/Unlit.hs +++ b/src/Unlit.hs @@ -4,8 +4,7 @@ module Unlit(unlit) where -- "Report on the Programming Language Haskell", -- version 1.2, appendix C. - -import Char +import Data.Char data Classified = Program String | Blank | Comment | Include Int String | Pre String