packages feed

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 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)