simplify evalExpression

This commit is contained in:
Richard Marko 2020-04-25 17:40:46 +02:00 committed by John Wiegley
parent f682907c97
commit f2999a33bb
1 changed files with 4 additions and 6 deletions

View File

@ -110,7 +110,10 @@ evaluateExpression mpath evaluator handler expr = do
args <- traverse (traverse eval') $ map (second parseArg) (arg opts) ++ map
(second mkStr)
(argstr opts)
compute evaluator expr (argmap args) handler
evaluator mpath expr >>= \f -> demand f $ \f' ->
processResult handler =<< case f' of
NVClosure _ g -> g (argmap args)
_ -> pure f
where
parseArg s = case parseNixText s of
Success x -> x
@ -120,11 +123,6 @@ evaluateExpression mpath evaluator handler expr = do
argmap args = nvSet (M.fromList args) mempty
compute ev x args p = ev mpath x >>= \f -> demand f $ \f' ->
processResult p =<< case f' of
NVClosure _ g -> g args
_ -> pure f
processResult
:: forall e t f m a
. (MonadNix e t f m, Has e Options)