@@ -124,7 +124,7 @@ builtins :: (MonadNix e t f m, Scoped (NValue t f m) m)
124124 => m (Scopes m (NValue t f m ))
125125builtins =
126126 do
127- ref <- defer $ ( nvSet mempty ) <$> buildMap
127+ ref <- defer $ nvSet mempty <$> buildMap
128128 lst <- ([(" builtins" , ref)] <> ) <$> topLevelBuiltins
129129 pushScope (M. fromList lst) currentScopes
130130 where
@@ -883,9 +883,10 @@ catAttrs attrName xs =
883883 n <- fromStringNoContext =<< fromValue attrName
884884 l <- fromValue @ [NValue t f m ] xs
885885
886- fmap (nvList . catMaybes) $
887- forM l $
888- fmap (M. lookup n) . fromValue <=< demand
886+ nvList . catMaybes <$>
887+ traverse
888+ (fmap (M. lookup n) . fromValue <=< demand)
889+ l
889890
890891baseNameOf :: MonadNix e t f m => NValue t f m -> m (NValue t f m )
891892baseNameOf x = do
@@ -1010,7 +1011,7 @@ genList f nixN =
10101011 n <- fromValue @ Integer nixN
10111012 bool
10121013 (throwError $ ErrorCall $ " builtins.genList: Expected a non-negative number, got " <> show n)
1013- (toValue =<< forM [ 0 .. n - 1 ] (defer . callFunc f <=< toValue))
1014+ (toValue =<< traverse (defer . callFunc f <=< toValue) [ 0 .. n - 1 ] )
10141015 (n >= 0 )
10151016
10161017-- We wrap values solely to provide an Ord instance for genericClosure
@@ -1433,17 +1434,17 @@ listToAttrs lst =
14331434 do
14341435 l <- fromValue @ [NValue t f m ] lst
14351436 fmap
1436- (( nvSet mempty ) . M. fromList . reverse )
1437- (forM l $
1437+ (nvSet mempty . M. fromList . reverse )
1438+ (traverse
14381439 (\ nvattrset ->
14391440 do
1440- a <- fromValue @ (AttrSet (NValue t f m )) nvattrset
1441- n <- fromValue =<< demand =<< attrsetGet " name" a
1442- name <- fromStringNoContext n
1441+ a <- fromValue @ (AttrSet (NValue t f m )) =<< demand nvattrset
1442+ name <- fromStringNoContext =<< fromValue =<< demand =<< attrsetGet " name" a
14431443 val <- attrsetGet " value" a
14441444
14451445 pure (name, val)
1446- ) <=< demand
1446+ )
1447+ l
14471448 )
14481449
14491450-- prim_hashString from nix/src/libexpr/primops.cc
@@ -1596,7 +1597,7 @@ fromJSON nvjson =
15961597
15971598 where
15981599 jsonToNValue = \ case
1599- A. Object m -> ( nvSet mempty ) <$> traverse jsonToNValue m
1600+ A. Object m -> nvSet mempty <$> traverse jsonToNValue m
16001601 A. Array l -> nvList <$> traverse jsonToNValue (V. toList l)
16011602 A. String s -> pure $ nvStr $ makeNixStringWithoutContext s
16021603 A. Number n ->
@@ -1664,7 +1665,7 @@ trace_ msg action =
16641665 traceEffect @ t @ f @ m . Text. unpack . stringIgnoreContext =<< fromValue msg
16651666 pure action
16661667
1667- -- 2018-09-08: NOTE: Remember of error context is so far not implemented
1668+ -- Please, can function remember error context
16681669addErrorContext
16691670 :: forall e t f m
16701671 . MonadNix e t f m
0 commit comments