mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-19 08:02:51 -06:00
Reduced clutter in monadic code
+ Eliminated vairous ad-hoc coersion functions between specific monads (IO, Err, IOE, Check) in favor of more general lifting functions (liftIO, liftErr). + Generalized many basic monadic operations from specific monads to arbitrary monads in the appropriate class (MonadIO and/or ErrorMonad), thereby completely eliminating the need for lifting functions in lots of places. This can be considered a small step forward towards a cleaner compiler API and more malleable compiler code in general.
This commit is contained in:
@@ -12,7 +12,6 @@ import Data.Version
|
||||
import System.Directory
|
||||
import System.Environment (getArgs)
|
||||
import System.Exit
|
||||
import System.IO
|
||||
import GF.System.Console (setConsoleEncoding)
|
||||
|
||||
main :: IO ()
|
||||
@@ -23,8 +22,8 @@ main = do
|
||||
Ok (opts,files) -> do curr_dir <- getCurrentDirectory
|
||||
lib_dir <- getLibraryDirectory opts
|
||||
mainOpts (fixRelativeLibPaths curr_dir lib_dir opts) files
|
||||
Bad err -> do hPutStrLn stderr err
|
||||
hPutStrLn stderr "You may want to try --help."
|
||||
Bad err -> do ePutStrLn err
|
||||
ePutStrLn "You may want to try --help."
|
||||
exitFailure
|
||||
|
||||
mainOpts :: Options -> [FilePath] -> IO ()
|
||||
|
||||
Reference in New Issue
Block a user