@@ -136,8 +136,8 @@ moveMapKey src dst
137-- let aMay = Map.lookup a map
137-- let aMay = Map.lookup a map
138-- bMay = Map.lookup b map
138-- bMay = Map.lookup b map
139−-- in maybe id (Map.insert a) (bMay `mplus` aMay)
139+-- in maybe id (Map.insert a) (bMay <> aMay)
140−-- . maybe id (Map.insert b) (aMay `mplus` bMay)
140+-- . maybe id (Map.insert b) (aMay <> bMay)
141-- . Map.delete a . Map.delete b $ map
141-- . Map.delete a . Map.delete b $ map
143swapMapKey
143swapMapKey
@@ -281,6 +281,8 @@ deriving instance (Read k, Read p, Read (PatchTarget p)) => Read (NodeInfo k p)
281deriving instance (Eq k, Eq p, Eq (PatchTarget p)) => Eq (NodeInfo k p)
281deriving instance (Eq k, Eq p, Eq (PatchTarget p)) => Eq (NodeInfo k p)
282deriving instance (Ord k, Ord p, Ord (PatchTarget p)) => Ord (NodeInfo k p)
282deriving instance (Ord k, Ord p, Ord (PatchTarget p)) => Ord (NodeInfo k p)
284+-- | Traverse the 'NodeInfo' over the key, patch, and patch target. Because of
285+-- the type families here, this doesn't it any bi- or tri-traversal class.
284bitraverseNodeInfo
286bitraverseNodeInfo
285 :: Applicative f
287 :: Applicative f
286 => (k0 -> f k1)
288 => (k0 -> f k1)
@@ -322,6 +324,8 @@ deriving instance (Read k, Read p, Read (PatchTarget p)) => Read (From k p)
322deriving instance (Eq k, Eq p, Eq (PatchTarget p)) => Eq (From k p)
324deriving instance (Eq k, Eq p, Eq (PatchTarget p)) => Eq (From k p)
323deriving instance (Ord k, Ord p, Ord (PatchTarget p)) => Ord (From k p)
325deriving instance (Ord k, Ord p, Ord (PatchTarget p)) => Ord (From k p)
327+-- | Traverse the 'From' over the key, patch, and patch target. Because of
328+-- the type families here, this doesn't it any bi- or tri-traversal class.
325bitraverseFrom
329bitraverseFrom
326 :: Applicative f
330 :: Applicative f
327 => (k0 -> f k1)
331 => (k0 -> f k1)