@@ -120,11 +120,14 @@ withNixContext mpath action =
120120 )
121121 mpath
122122
123- builtins :: (MonadNix e t f m , Scoped (NValue t f m ) m )
124- => m (Scopes m (NValue t f m ))
123+ builtins
124+ :: ( MonadNix e t f m
125+ , Scoped (NValue t f m ) m
126+ )
127+ => m (Scopes m (NValue t f m ))
125128builtins =
126129 do
127- ref <- defer $ ( ` nvSet` M. empty) <$> buildMap
130+ ref <- defer $ nvSet mempty <$> buildMap
128131 lst <- ([(" builtins" , ref)] <> ) <$> topLevelBuiltins
129132 pushScope (M. fromList lst) currentScopes
130133 where
@@ -394,7 +397,7 @@ nixPath :: MonadNix e t f m => m (NValue t f m)
394397nixPath = fmap nvList $ flip foldNixPath mempty $
395398 \ p mn ty rest ->
396399 pure $
397- flip nvSet
400+ nvSet
398401 mempty
399402 (M. fromList
400403 [case ty of
@@ -883,9 +886,10 @@ catAttrs attrName xs =
883886 n <- fromStringNoContext =<< fromValue attrName
884887 l <- fromValue @ [NValue t f m ] xs
885888
886- fmap (nvList . catMaybes) $
887- forM l $
888- fmap (M. lookup n) . fromValue <=< demand
889+ nvList . catMaybes <$>
890+ traverse
891+ (fmap (M. lookup n) . fromValue <=< demand)
892+ l
889893
890894baseNameOf :: MonadNix e t f m => NValue t f m -> m (NValue t f m )
891895baseNameOf x = do
@@ -1010,7 +1014,7 @@ genList f nixN =
10101014 n <- fromValue @ Integer nixN
10111015 bool
10121016 (throwError $ ErrorCall $ " builtins.genList: Expected a non-negative number, got " <> show n)
1013- (toValue =<< forM [ 0 .. n - 1 ] (defer . callFunc f <=< toValue))
1017+ (toValue =<< traverse (defer . callFunc f <=< toValue) [ 0 .. n - 1 ] )
10141018 (n >= 0 )
10151019
10161020-- We wrap values solely to provide an Ord instance for genericClosure
@@ -1195,7 +1199,7 @@ intersectAttrs set1 set2 =
11951199 (s1, p1) <- fromValue @ (AttrSet (NValue t f m ), AttrSet SourcePos ) set1
11961200 (s2, p2) <- fromValue @ (AttrSet (NValue t f m ), AttrSet SourcePos ) set2
11971201
1198- pure $ nvSet (s2 `M.intersection` s1 ) (p2 `M.intersection` p1 )
1202+ pure $ nvSet (p2 `M.intersection` p1 ) (s2 `M.intersection` s1 )
11991203
12001204functionArgs
12011205 :: forall e t f m . MonadNix e t f m => NValue t f m -> m (NValue t f m )
@@ -1311,7 +1315,7 @@ throw_ mnv =
13111315
13121316import_
13131317 :: forall e t f m . MonadNix e t f m => NValue t f m -> m (NValue t f m )
1314- import_ = scopedImport (nvSet M. empty M. empty )
1318+ import_ = scopedImport (nvSet mempty mempty )
13151319
13161320scopedImport
13171321 :: forall e t f m
@@ -1433,17 +1437,17 @@ listToAttrs lst =
14331437 do
14341438 l <- fromValue @ [NValue t f m ] lst
14351439 fmap
1436- (( ` nvSet` M. empty) . M. fromList . reverse )
1437- (forM l $
1440+ (nvSet mempty . M. fromList . reverse )
1441+ (traverse
14381442 (\ nvattrset ->
14391443 do
1440- a <- fromValue @ (AttrSet (NValue t f m )) nvattrset
1441- n <- fromValue =<< demand =<< attrsetGet " name" a
1442- name <- fromStringNoContext n
1444+ a <- fromValue @ (AttrSet (NValue t f m )) =<< demand nvattrset
1445+ name <- fromStringNoContext =<< fromValue =<< demand =<< attrsetGet " name" a
14431446 val <- attrsetGet " value" a
14441447
14451448 pure (name, val)
1446- ) <=< demand
1449+ )
1450+ l
14471451 )
14481452
14491453-- prim_hashString from nix/src/libexpr/primops.cc
@@ -1596,7 +1600,7 @@ fromJSON nvjson =
15961600
15971601 where
15981602 jsonToNValue = \ case
1599- A. Object m -> ( ` nvSet` M. empty) <$> traverse jsonToNValue m
1603+ A. Object m -> nvSet mempty <$> traverse jsonToNValue m
16001604 A. Array l -> nvList <$> traverse jsonToNValue (V. toList l)
16011605 A. String s -> pure $ nvStr $ makeNixStringWithoutContext s
16021606 A. Number n ->
@@ -1643,12 +1647,12 @@ tryEval
16431647 :: forall e t f m . MonadNix e t f m => NValue t f m -> m (NValue t f m )
16441648tryEval e = catch (onSuccess <$> demand e) (pure . onError)
16451649 where
1646- onSuccess v = flip nvSet M. empty $ M. fromList
1650+ onSuccess v = nvSet mempty $ M. fromList
16471651 [ (" success" , nvConstant (NBool True ))
16481652 , (" value" , v)]
16491653
16501654 onError :: SomeException -> NValue t f m
1651- onError _ = flip nvSet M. empty $ M. fromList
1655+ onError _ = nvSet mempty $ M. fromList
16521656 [ (" success" , nvConstant (NBool False ))
16531657 , (" value" , nvConstant (NBool False ))
16541658 ]
@@ -1664,7 +1668,7 @@ trace_ msg action =
16641668 traceEffect @ t @ f @ m . Text. unpack . stringIgnoreContext =<< fromValue msg
16651669 pure action
16661670
1667- -- 2018-09-08: NOTE: Remember of error context is so far not implemented
1671+ -- Please, can function remember error context
16681672addErrorContext
16691673 :: forall e t f m
16701674 . MonadNix e t f m
@@ -1755,7 +1759,7 @@ getContext =
17551759 (NVStr ns) -> do
17561760 let context = getNixLikeContext $ toNixLikeContext $ NixString. getContext ns
17571761 valued :: M. HashMap Text (NValue t f m ) <- sequenceA $ M. map toValue context
1758- pure $ nvSet valued M. empty
1762+ pure $ nvSet mempty valued
17591763 x -> throwError $ ErrorCall $ " Invalid type for builtins.getContext: " <> show x) <=< demand
17601764
17611765appendContext
0 commit comments