Merge remote-tracking branch 'quasi/monadfail'

This commit is contained in:
John Wiegley 2020-01-13 17:56:33 -08:00
commit 71804374ce
No known key found for this signature in database
GPG Key ID: C144D8F4F19FE630
6 changed files with 12 additions and 4 deletions

View File

@ -234,7 +234,7 @@ desugarBinds embed binds = evalState (mapM (go <=< collect) binds) M.empty
go (Left x) = do
maybeValue <- gets (M.lookup x)
case maybeValue of
Nothing -> fail ("No binding " ++ show x)
Nothing -> error ("No binding " ++ show x)
Just (p, v) -> pure $ NamedVar (StaticKey x :| []) (embed v) p
evalBinds

View File

@ -16,6 +16,7 @@ import Control.Applicative
import Control.Monad.Base
import Control.Monad.Catch
import Control.Monad.Except
import Control.Monad.Fail
import Control.Monad.Reader
import Control.Monad.Ref
import Control.Monad.ST
@ -33,6 +34,7 @@ newtype FreshIdT i m a = FreshIdT { unFreshIdT :: ReaderT (Var m i) m a }
, Applicative
, Alternative
, Monad
, MonadFail
, MonadPlus
, MonadFix
, MonadRef

View File

@ -8,6 +8,7 @@
module Nix.Fresh.Basic where
import Control.Monad.Fail ( MonadFail )
import Control.Monad.Reader
import Nix.Effects
import Nix.Render
@ -16,7 +17,7 @@ import Nix.Value
type StdIdT = FreshIdT Int
instance MonadFile m => MonadFile (StdIdT m)
instance (MonadFail m, MonadFile m) => MonadFile (StdIdT m)
instance MonadIntrospect m => MonadIntrospect (StdIdT m)
instance MonadStore m => MonadStore (StdIdT m) where
addPath' = lift . addPath'

View File

@ -12,6 +12,7 @@ module Nix.Render where
import Prelude hiding ( readFile )
import Control.Monad.Fail ( MonadFail )
import Control.Monad.Trans
import Data.ByteString ( ByteString )
import qualified Data.ByteString as BS
@ -26,7 +27,7 @@ import qualified System.Posix.Files as S
import Text.Megaparsec.Error
import Text.Megaparsec.Pos
class Monad m => MonadFile m where
class MonadFail m => MonadFile m where
readFile :: FilePath -> m ByteString
default readFile :: (MonadTrans t, MonadFile m', m ~ t m') => FilePath -> m ByteString
readFile = lift . readFile

View File

@ -22,6 +22,7 @@ import Control.Applicative
import Control.Comonad ( Comonad )
import Control.Comonad.Env ( ComonadEnv )
import Control.Monad.Catch hiding ( catchJust )
import Control.Monad.Fail ( MonadFail )
import Control.Monad.Free
import Control.Monad.Reader
import Control.Monad.Ref
@ -94,7 +95,7 @@ instance (MonadFix1T t m, MonadRef m) => MonadRef (Fix1T t m) where
instance (MonadFix1T t m, MonadAtomicRef m) => MonadAtomicRef (Fix1T t m) where
atomicModifyRef r = lift . atomicModifyRef r
instance (MonadFix1T t m, MonadFile m) => MonadFile (Fix1T t m)
instance (MonadFix1T t m, MonadFail (Fix1T t m), MonadFile m) => MonadFile (Fix1T t m)
instance (MonadFix1T t m, MonadStore m) => MonadStore (Fix1T t m) where
addPath' = lift . addPath'
@ -212,6 +213,7 @@ newtype StandardTF r m a
, Applicative
, Alternative
, Monad
, MonadFail
, MonadPlus
, MonadFix
, MonadIO

View File

@ -11,6 +11,7 @@ module Nix.Utils.Fix1 where
import Control.Applicative
import Control.Monad
import Control.Monad.Fail
import Control.Monad.Fix
import Control.Monad.IO.Class
import Control.Monad.Catch
@ -41,6 +42,7 @@ deriving instance Functor (t (Fix1T t m) m) => Functor (Fix1T t m)
deriving instance Applicative (t (Fix1T t m) m) => Applicative (Fix1T t m)
deriving instance Alternative (t (Fix1T t m) m) => Alternative (Fix1T t m)
deriving instance Monad (t (Fix1T t m) m) => Monad (Fix1T t m)
deriving instance MonadFail (t (Fix1T t m) m) => MonadFail (Fix1T t m)
deriving instance MonadPlus (t (Fix1T t m) m) => MonadPlus (Fix1T t m)
deriving instance MonadFix (t (Fix1T t m) m) => MonadFix (Fix1T t m)
deriving instance MonadIO (t (Fix1T t m) m) => MonadIO (Fix1T t m)