ivory-eval 0.1.0.5 → 0.1.0.6
raw patch · 2 files changed
+13/−4 lines, 2 filesnew-uploader
Files
- ivory-eval.cabal +1/−1
- src/Ivory/Eval.hs +12/−3
ivory-eval.cabal view
@@ -1,5 +1,5 @@ name: ivory-eval-version: 0.1.0.5+version: 0.1.0.6 author: Galois, Inc. copyright: 2014 Galois, Inc. maintainer: leepike@galois.com
src/Ivory/Eval.hs view
@@ -1,5 +1,7 @@-{-# LANGUAGE RankNTypes #-}-{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE RecordWildCards #-} {-# OPTIONS_GHC -fno-warn-name-shadowing #-} -- | A simple interpreter for a subset of Ivory.@@ -29,8 +31,10 @@ negate, not, or) import qualified Prelude.Compat as Prelude - import Control.Monad (foldM, unless, void)+#if MIN_VERSION_base_compat(0,10,0)+import qualified Control.Monad.Fail.Compat as Fail+#endif import Data.Int import qualified Data.Map as Map import Data.Maybe@@ -50,6 +54,11 @@ type Error = String type Eval a = StateT EvalState (ExceptionT Error Id) a++#if MIN_VERSION_base_compat(0,10,0)+instance {-# OVERLAPS #-} Fail.MonadFail (StateT EvalState (ExceptionT Error Id)) where+ fail = raise+#endif runEval :: Eval a -> Either Error a runEval doThis = fmap fst (runEvalStartingFrom (initState Map.empty) doThis)