Skip to content

Commit 7180437

Browse files
committed
Merge remote-tracking branch 'quasi/monadfail'
2 parents a8c084a + 37c2bb2 commit 7180437

File tree

6 files changed

+12
-4
lines changed

6 files changed

+12
-4
lines changed

src/Nix/Eval.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ desugarBinds embed binds = evalState (mapM (go <=< collect) binds) M.empty
234234
go (Left x) = do
235235
maybeValue <- gets (M.lookup x)
236236
case maybeValue of
237-
Nothing -> fail ("No binding " ++ show x)
237+
Nothing -> error ("No binding " ++ show x)
238238
Just (p, v) -> pure $ NamedVar (StaticKey x :| []) (embed v) p
239239

240240
evalBinds

src/Nix/Fresh.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import Control.Applicative
1616
import Control.Monad.Base
1717
import Control.Monad.Catch
1818
import Control.Monad.Except
19+
import Control.Monad.Fail
1920
import Control.Monad.Reader
2021
import Control.Monad.Ref
2122
import Control.Monad.ST
@@ -33,6 +34,7 @@ newtype FreshIdT i m a = FreshIdT { unFreshIdT :: ReaderT (Var m i) m a }
3334
, Applicative
3435
, Alternative
3536
, Monad
37+
, MonadFail
3638
, MonadPlus
3739
, MonadFix
3840
, MonadRef

src/Nix/Fresh/Basic.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
module Nix.Fresh.Basic where
1010

11+
import Control.Monad.Fail ( MonadFail )
1112
import Control.Monad.Reader
1213
import Nix.Effects
1314
import Nix.Render
@@ -16,7 +17,7 @@ import Nix.Value
1617

1718
type StdIdT = FreshIdT Int
1819

19-
instance MonadFile m => MonadFile (StdIdT m)
20+
instance (MonadFail m, MonadFile m) => MonadFile (StdIdT m)
2021
instance MonadIntrospect m => MonadIntrospect (StdIdT m)
2122
instance MonadStore m => MonadStore (StdIdT m) where
2223
addPath' = lift . addPath'

src/Nix/Render.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ module Nix.Render where
1212

1313
import Prelude hiding ( readFile )
1414

15+
import Control.Monad.Fail ( MonadFail )
1516
import Control.Monad.Trans
1617
import Data.ByteString ( ByteString )
1718
import qualified Data.ByteString as BS
@@ -26,7 +27,7 @@ import qualified System.Posix.Files as S
2627
import Text.Megaparsec.Error
2728
import Text.Megaparsec.Pos
2829

29-
class Monad m => MonadFile m where
30+
class MonadFail m => MonadFile m where
3031
readFile :: FilePath -> m ByteString
3132
default readFile :: (MonadTrans t, MonadFile m', m ~ t m') => FilePath -> m ByteString
3233
readFile = lift . readFile

src/Nix/Standard.hs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import Control.Applicative
2222
import Control.Comonad ( Comonad )
2323
import Control.Comonad.Env ( ComonadEnv )
2424
import Control.Monad.Catch hiding ( catchJust )
25+
import Control.Monad.Fail ( MonadFail )
2526
import Control.Monad.Free
2627
import Control.Monad.Reader
2728
import Control.Monad.Ref
@@ -94,7 +95,7 @@ instance (MonadFix1T t m, MonadRef m) => MonadRef (Fix1T t m) where
9495
instance (MonadFix1T t m, MonadAtomicRef m) => MonadAtomicRef (Fix1T t m) where
9596
atomicModifyRef r = lift . atomicModifyRef r
9697

97-
instance (MonadFix1T t m, MonadFile m) => MonadFile (Fix1T t m)
98+
instance (MonadFix1T t m, MonadFail (Fix1T t m), MonadFile m) => MonadFile (Fix1T t m)
9899

99100
instance (MonadFix1T t m, MonadStore m) => MonadStore (Fix1T t m) where
100101
addPath' = lift . addPath'
@@ -212,6 +213,7 @@ newtype StandardTF r m a
212213
, Applicative
213214
, Alternative
214215
, Monad
216+
, MonadFail
215217
, MonadPlus
216218
, MonadFix
217219
, MonadIO

src/Nix/Utils/Fix1.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ module Nix.Utils.Fix1 where
1111

1212
import Control.Applicative
1313
import Control.Monad
14+
import Control.Monad.Fail
1415
import Control.Monad.Fix
1516
import Control.Monad.IO.Class
1617
import Control.Monad.Catch
@@ -41,6 +42,7 @@ deriving instance Functor (t (Fix1T t m) m) => Functor (Fix1T t m)
4142
deriving instance Applicative (t (Fix1T t m) m) => Applicative (Fix1T t m)
4243
deriving instance Alternative (t (Fix1T t m) m) => Alternative (Fix1T t m)
4344
deriving instance Monad (t (Fix1T t m) m) => Monad (Fix1T t m)
45+
deriving instance MonadFail (t (Fix1T t m) m) => MonadFail (Fix1T t m)
4446
deriving instance MonadPlus (t (Fix1T t m) m) => MonadPlus (Fix1T t m)
4547
deriving instance MonadFix (t (Fix1T t m) m) => MonadFix (Fix1T t m)
4648
deriving instance MonadIO (t (Fix1T t m) m) => MonadIO (Fix1T t m)

0 commit comments

Comments
 (0)