diff --git a/src/Nix.hs b/src/Nix.hs index 2704c88..5bbd7fd 100644 --- a/src/Nix.hs +++ b/src/Nix.hs @@ -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)