@@ -7,7 +7,7 @@
7{-# LANGUAGE UndecidableInstances #-}
7{-# LANGUAGE UndecidableInstances #-}
8-- | 'Patch'es on 'Map' that can insert, delete, and move values from one key to
8-- | 'Patch'es on 'Map' that can insert, delete, and move values from one key to
10−module Reflex.Patch.MapWithMove2 where
10+module Reflex.Patch.MapWithMove.New where
12import Reflex.Patch.Class
12import Reflex.Patch.Class
@@ -25,7 +25,7 @@ import Data.These
25import Data.Tuple
25import Data.Tuple
27-- | Patch a DMap with additions, deletions, and moves. Invariant: If key @k1@
27-- | Patch a DMap with additions, deletions, and moves. Invariant: If key @k1@
28−-- is coming from @From_Move k2@, then key @k2@ should be going to @Just k1@,
28+-- is coming from @From_Move k@, then key @k2@ should be going to @Just k1@,
29-- and vice versa. There should never be any unpaired From/To keys.
29-- and vice versa. There should never be any unpaired From/To keys.
30newtype PatchMapWithMove2 k p = PatchMapWithMove2 (Map k (NodeInfo k p))
30newtype PatchMapWithMove2 k p = PatchMapWithMove2 (Map k (NodeInfo k p))
31deriving instance (Show k, Show p, Show (PatchTarget p)) => Show (PatchMapWithMove2 k p)
31deriving instance (Show k, Show p, Show (PatchTarget p)) => Show (PatchMapWithMove2 k p)
@@ -47,8 +47,8 @@ deriving instance (Eq k, Eq p, Eq (PatchTarget p)) => Eq (NodeInfo k p)
47deriving instance (Ord k, Ord p, Ord (PatchTarget p)) => Ord (NodeInfo k p)
47deriving instance (Ord k, Ord p, Ord (PatchTarget p)) => Ord (NodeInfo k p)
49-- | Create a 'PatchMapWithMove2', validating it
49-- | Create a 'PatchMapWithMove2', validating it
50−patchMapWithMove2 :: Ord k => Map k (NodeInfo k p) -> Maybe (PatchMapWithMove2 k p)
50+patchMapWithMove :: Ord k => Map k (NodeInfo k p) -> Maybe (PatchMapWithMove2 k p)
51−patchMapWithMove2 m = if valid then Just $ PatchMapWithMove2 m else Nothing
51+patchMapWithMove m = if valid then Just $ PatchMapWithMove2 m else Nothing
52 where valid = forwardLinks == backwardLinks
52 where valid = forwardLinks == backwardLinks
53 forwardLinks = Map.mapMaybe _nodeInfo_to m
53 forwardLinks = Map.mapMaybe _nodeInfo_to m
54 backwardLinks = Map.fromList $ catMaybes $ flip fmap (Map.toList m) $ \(to, p) ->
54 backwardLinks = Map.fromList $ catMaybes $ flip fmap (Map.toList m) $ \(to, p) ->
@@ -57,8 +57,8 @@ patchMapWithMove2 m = if valid then Just $ PatchMapWithMove2 m else Nothing
57 _ -> Nothing
57 _ -> Nothing
59-- | Create a 'PatchMapWithMove2' that inserts everything in the given 'Map'
59-- | Create a 'PatchMapWithMove2' that inserts everything in the given 'Map'
60−patchMapWithMove2InsertAll :: Map k (PatchTarget p) -> PatchMapWithMove2 k p
60+patchMapWithMoveInsertAll :: Map k (PatchTarget p) -> PatchMapWithMove2 k p
61−patchMapWithMove2InsertAll m = PatchMapWithMove2 $ flip fmap m $ \v -> NodeInfo
61+patchMapWithMoveInsertAll m = PatchMapWithMove2 $ flip fmap m $ \v -> NodeInfo
62 { _nodeInfo_from = From_Insert v
62 { _nodeInfo_from = From_Insert v
63 , _nodeInfo_to = Nothing
63 , _nodeInfo_to = Nothing