@@ -71,6 +71,14 @@ class FromValue a m v where
7171 fromValue :: v -> m a
7272 fromValueMay :: v -> m (Maybe a )
7373
74+ traverseFromM
75+ :: ( Applicative m
76+ , Traversable t
77+ , FromValue b m a
78+ )
79+ => t a
80+ -> m (Maybe (t b ))
81+ traverseFromM = traverseM fromValueMay
7482
7583-- Please, hide these helper function from export, to be sure they get optimized away.
7684fromMayToValue
@@ -277,7 +285,7 @@ instance ( Convertible e t f m
277285 => FromValue [a ] m (Deeper (NValue' t f m (NValue t f m ))) where
278286 fromValueMay =
279287 \ case
280- Deeper (NVList' l) -> sequenceA <$> traverse fromValueMay l
288+ Deeper (NVList' l) -> traverseFromM l
281289 _ -> stub
282290
283291
@@ -301,7 +309,7 @@ instance ( Convertible e t f m
301309
302310 fromValueMay =
303311 \ case
304- Deeper (NVSet' _ s) -> sequenceA <$> traverse fromValueMay s
312+ Deeper (NVSet' _ s) -> traverseFromM s
305313 _ -> stub
306314
307315 fromValue = fromMayToDeeperValue TSet
@@ -326,7 +334,7 @@ instance ( Convertible e t f m
326334
327335 fromValueMay =
328336 \ case
329- Deeper (NVSet' p s) -> fmap (, p) . sequenceA <$> traverse fromValueMay s
337+ Deeper (NVSet' p s) -> (, p) <<$>> traverseFromM s
330338 _ -> stub
331339
332340 fromValue = fromMayToDeeperValue TSet
@@ -345,13 +353,15 @@ instance ( Convertible e t f m
345353class ToValue a m v where
346354 toValue :: a -> m v
347355
348- instance (Convertible e t f m , ToValue a m (NValue' t f m (NValue t f m )))
356+ instance (Convertible e t f m
357+ , ToValue a m (NValue' t f m (NValue t f m ))
358+ )
349359 => ToValue a m (NValue t f m ) where
350360 toValue v = Free <$> toValue v
351361
352362instance ( Convertible e t f m
353- , ToValue a m (Deeper (NValue' t f m (NValue t f m )))
354- )
363+ , ToValue a m (Deeper (NValue' t f m (NValue t f m )))
364+ )
355365 => ToValue a m (Deeper (NValue t f m )) where
356366 toValue v = Free <<$>> toValue v
357367
@@ -395,8 +405,7 @@ instance Convertible e t f m
395405 => ToValue StorePath m (NValue' t f m (NValue t f m )) where
396406 toValue = toValue @ Path . coerce
397407
398- instance ( Convertible e t f m
399- )
408+ instance Convertible e t f m
400409 => ToValue SourcePos m (NValue' t f m (NValue t f m )) where
401410 toValue (SourcePos f l c) = do
402411 f' <- toValue $ mkNixStringWithoutContext $ fromString f
@@ -410,7 +419,9 @@ instance Convertible e t f m
410419 => ToValue [NValue t f m ] m (NValue' t f m (NValue t f m )) where
411420 toValue = pure . nvList'
412421
413- instance (Convertible e t f m , ToValue a m (NValue t f m ))
422+ instance (Convertible e t f m
423+ , ToValue a m (NValue t f m )
424+ )
414425 => ToValue [a ] m (Deeper (NValue' t f m (NValue t f m ))) where
415426 toValue l = Deeper . nvList' <$> traverse toValue l
416427
0 commit comments