Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Patch
Description
Synopsis
- class (Semigroup q, Monoid q) => Group q where
- newtype AdditivePatch p = AdditivePatch {
- unAdditivePatch :: p
- module Data.Patch.Class
- module Data.Patch.Map
- module Data.Semigroup.Additive
- data PatchDMapWithMove (k1 :: k -> Type) (v :: k -> Type)
- const2PatchDMapWithMoveWith :: forall {k1} k2 v v' (a :: k1). (v -> v' a) -> PatchMapWithMove k2 v -> PatchDMapWithMove (Const2 k2 a) v'
- mapPatchDMapWithMove :: forall {k1} (k2 :: k1 -> Type) v v'. (forall (a :: k1). v a -> v' a) -> PatchDMapWithMove k2 v -> PatchDMapWithMove k2 v'
- patchDMapWithMoveToPatchMapWithMoveWith :: forall {k1} k2 v v' (a :: k1). (v a -> v') -> PatchDMapWithMove (Const2 k2 a) v -> PatchMapWithMove k2 v'
- traversePatchDMapWithMoveWithKey :: forall {k1} m k2 v v'. Applicative m => (forall (a :: k1). k2 a -> v a -> m (v' a)) -> PatchDMapWithMove k2 v -> m (PatchDMapWithMove k2 v')
- unPatchDMapWithMove :: forall {k1} (k2 :: k1 -> Type) (v :: k1 -> Type). PatchDMapWithMove k2 v -> DMap k2 (NodeInfo k2 v)
- unsafePatchDMapWithMove :: forall {k1} (k2 :: k1 -> Type) (v :: k1 -> Type). DMap k2 (NodeInfo k2 v) -> PatchDMapWithMove k2 v
- weakenPatchDMapWithMoveWith :: forall {k1} (k2 :: k1 -> Type) v v'. (forall (a :: k1). v a -> v') -> PatchDMapWithMove k2 v -> PatchMapWithMove (Some k2) v'
- data PatchMapWithMove k v
- patchMapWithMoveNewElements :: PatchMapWithMove k v -> [v]
- patchMapWithMoveNewElementsMap :: PatchMapWithMove k v -> Map k v
- unsafePatchMapWithMove :: Map k (NodeInfo k v) -> PatchMapWithMove k v
- newtype PatchIntMap a = PatchIntMap {
- unPatchIntMap :: IntMap (Maybe a)
- mapIntMapPatchWithKey :: (Int -> a -> b) -> PatchIntMap a -> PatchIntMap b
- traverseIntMapPatchWithKey :: Applicative f => (Int -> a -> f b) -> PatchIntMap a -> f (PatchIntMap b)
- patchIntMapNewElements :: PatchIntMap a -> [a]
- patchIntMapNewElementsMap :: PatchIntMap a -> IntMap a
- newtype PatchDMap (k1 :: k -> Type) (v :: k -> Type) = PatchDMap {
- unPatchDMap :: DMap k1 (ComposeMaybe v)
- mapPatchDMap :: forall {k1} v v' (k2 :: k1 -> Type). (forall (a :: k1). v a -> v' a) -> PatchDMap k2 v -> PatchDMap k2 v'
- traversePatchDMap :: forall {k1} f v v' (k2 :: k1 -> Type). Applicative f => (forall (a :: k1). v a -> f (v' a)) -> PatchDMap k2 v -> f (PatchDMap k2 v')
- traversePatchDMapWithKey :: forall {k1} m k2 v v'. Applicative m => (forall (a :: k1). k2 a -> v a -> m (v' a)) -> PatchDMap k2 v -> m (PatchDMap k2 v')
- weakenPatchDMapWith :: forall {k1} v v' (k2 :: k1 -> Type). (forall (a :: k1). v a -> v') -> PatchDMap k2 v -> PatchMap (Some k2) v'
- patchDMapToPatchMapWith :: forall {k1} v (a :: k1) v' k2. (v a -> v') -> PatchDMap (Const2 k2 a) v -> PatchMap k2 v'
- const2PatchDMapWith :: forall {k1} k2 v v' (a :: k1). (v -> v' a) -> PatchMap k2 v -> PatchDMap (Const2 k2 a) v'
- const2IntPatchDMapWith :: forall {k} v f (a :: k). (v -> f a) -> PatchIntMap v -> PatchDMap (Const2 Key a) f
Documentation
class (Semigroup q, Monoid q) => Group q where Source #
Minimal complete definition
Instances
Group () Source # | Trivial group. |
Group a => Group (Identity a) Source # | Identity lifts groups pointwise (at only one point) |
Group (Proxy x) Source # | Trivial group, Functor style |
(Ord k, Group q) => Group (MonoidalMap k q) Source # | |
Defined in Data.Patch Methods negateG :: MonoidalMap k q -> MonoidalMap k q Source # (~~) :: MonoidalMap k q -> MonoidalMap k q -> MonoidalMap k q Source # | |
(Group a, Group b) => Group (a, b) Source # | Product group. A Pair of groups gives rise to a group |
Group b => Group (a -> b) Source # | Functions lift groups pointwise. |
Group a => Group (Const a x) Source # | Const lifts groups into a functor. |
(Group (f a), Group (g a)) => Group ((f :*: g) a) Source # | Product of groups, Functor style. |
Group (f (g a)) => Group ((f :.: g) a) Source # | |
newtype AdditivePatch p Source #
The elements of an Commutative
Semigroup
can be considered as patches of their own type.
Constructors
AdditivePatch | |
Fields
|
Instances
Commutative p => Patch (AdditivePatch p) Source # | |||||
Defined in Data.Patch Associated Types
Methods apply :: AdditivePatch p -> PatchTarget (AdditivePatch p) -> Maybe (PatchTarget (AdditivePatch p)) Source # | |||||
type PatchTarget (AdditivePatch p) Source # | |||||
Defined in Data.Patch |
module Data.Patch.Class
module Data.Patch.Map
module Data.Semigroup.Additive
data PatchDMapWithMove (k1 :: k -> Type) (v :: k -> Type) Source #
Like PatchMapWithMove
, but for DMap
. Each key carries a NodeInfo
which describes how it will be changed by the patch and connects move sources and
destinations.
Invariants:
- A key should not move to itself.
- A move should always be represented with both the destination key (as a
From_Move
) and the source key (as a
)ComposeMaybe
(Just
destination)
Instances
const2PatchDMapWithMoveWith :: forall {k1} k2 v v' (a :: k1). (v -> v' a) -> PatchMapWithMove k2 v -> PatchDMapWithMove (Const2 k2 a) v' Source #
Strengthen a
into a PatchMapWithMove
k v'PatchDMapWithMove (
; that is, turn a non-dependently-typed patch into a dependently typed
one but which always has a constant key type represented by Const2
k a)Const2
. Apply the given function to each v
to produce a v' a
.
Completemented by patchDMapWithMoveToPatchMapWithMoveWith
mapPatchDMapWithMove :: forall {k1} (k2 :: k1 -> Type) v v'. (forall (a :: k1). v a -> v' a) -> PatchDMapWithMove k2 v -> PatchDMapWithMove k2 v' Source #
Map a natural transform v -> v'
over the given patch, transforming
into PatchDMapWithMove
k v
.PatchDMapWithMove
k v'
patchDMapWithMoveToPatchMapWithMoveWith :: forall {k1} k2 v v' (a :: k1). (v a -> v') -> PatchDMapWithMove (Const2 k2 a) v -> PatchMapWithMove k2 v' Source #
Weaken a
to a PatchDMapWithMove
(Const2 k a) v
. Weaken is in scare quotes because the PatchMapWithMove
k v'Const2
has already disabled any
dependency in the typing and all points are already a
, hence the function to map each value to v'
is not higher rank.
traversePatchDMapWithMoveWithKey :: forall {k1} m k2 v v'. Applicative m => (forall (a :: k1). k2 a -> v a -> m (v' a)) -> PatchDMapWithMove k2 v -> m (PatchDMapWithMove k2 v') Source #
Map an effectful function forall a. k a -> v a -> m (v ' a)
over the given patch, transforming
into PatchDMapWithMove
k vm (
.PatchDMapWithMove
k v')
unPatchDMapWithMove :: forall {k1} (k2 :: k1 -> Type) (v :: k1 -> Type). PatchDMapWithMove k2 v -> DMap k2 (NodeInfo k2 v) Source #
Extract the DMap
representing the patch changes from the PatchDMapWithMove
.
unsafePatchDMapWithMove :: forall {k1} (k2 :: k1 -> Type) (v :: k1 -> Type). DMap k2 (NodeInfo k2 v) -> PatchDMapWithMove k2 v Source #
Wrap a DMap
representing patch changes into a PatchDMapWithMove
, without checking any invariants.
Warning: when using this function, you must ensure that the invariants of PatchDMapWithMove
are preserved; they will not be checked.
weakenPatchDMapWithMoveWith :: forall {k1} (k2 :: k1 -> Type) v v'. (forall (a :: k1). v a -> v') -> PatchDMapWithMove k2 v -> PatchMapWithMove (Some k2) v' Source #
Weaken a PatchDMapWithMove
to a PatchMapWithMove
by weakening the keys from k a
to
and applying a given weakening function Some
kv a -> v'
to
values.
data PatchMapWithMove k v Source #
Patch a Map with additions, deletions, and moves. Invariant: If key k1
is coming from From_Move k2
, then key k2
should be going to Just k1
,
and vice versa. There should never be any unpaired From/To keys.
Instances
FoldableWithIndex k (PatchMapWithMove k) Source # | |||||
Defined in Data.Patch.MapWithMove Methods ifoldMap :: Monoid m => (k -> a -> m) -> PatchMapWithMove k a -> m # ifoldMap' :: Monoid m => (k -> a -> m) -> PatchMapWithMove k a -> m # ifoldr :: (k -> a -> b -> b) -> b -> PatchMapWithMove k a -> b # ifoldl :: (k -> b -> a -> b) -> b -> PatchMapWithMove k a -> b # ifoldr' :: (k -> a -> b -> b) -> b -> PatchMapWithMove k a -> b # ifoldl' :: (k -> b -> a -> b) -> b -> PatchMapWithMove k a -> b # | |||||
FunctorWithIndex k (PatchMapWithMove k) Source # | |||||
Defined in Data.Patch.MapWithMove Methods imap :: (k -> a -> b) -> PatchMapWithMove k a -> PatchMapWithMove k b # | |||||
TraversableWithIndex k (PatchMapWithMove k) Source # | |||||
Defined in Data.Patch.MapWithMove Methods itraverse :: Applicative f => (k -> a -> f b) -> PatchMapWithMove k a -> f (PatchMapWithMove k b) # | |||||
Functor (PatchMapWithMove k) Source # | |||||
Defined in Data.Patch.MapWithMove Methods fmap :: (a -> b) -> PatchMapWithMove k a -> PatchMapWithMove k b # (<$) :: a -> PatchMapWithMove k b -> PatchMapWithMove k a # | |||||
Foldable (PatchMapWithMove k) Source # | |||||
Defined in Data.Patch.MapWithMove Methods fold :: Monoid m => PatchMapWithMove k m -> m # foldMap :: Monoid m => (a -> m) -> PatchMapWithMove k a -> m # foldMap' :: Monoid m => (a -> m) -> PatchMapWithMove k a -> m # foldr :: (a -> b -> b) -> b -> PatchMapWithMove k a -> b # foldr' :: (a -> b -> b) -> b -> PatchMapWithMove k a -> b # foldl :: (b -> a -> b) -> b -> PatchMapWithMove k a -> b # foldl' :: (b -> a -> b) -> b -> PatchMapWithMove k a -> b # foldr1 :: (a -> a -> a) -> PatchMapWithMove k a -> a # foldl1 :: (a -> a -> a) -> PatchMapWithMove k a -> a # toList :: PatchMapWithMove k a -> [a] # null :: PatchMapWithMove k a -> Bool # length :: PatchMapWithMove k a -> Int # elem :: Eq a => a -> PatchMapWithMove k a -> Bool # maximum :: Ord a => PatchMapWithMove k a -> a # minimum :: Ord a => PatchMapWithMove k a -> a # sum :: Num a => PatchMapWithMove k a -> a # product :: Num a => PatchMapWithMove k a -> a # | |||||
Traversable (PatchMapWithMove k) Source # | |||||
Defined in Data.Patch.MapWithMove Methods traverse :: Applicative f => (a -> f b) -> PatchMapWithMove k a -> f (PatchMapWithMove k b) # sequenceA :: Applicative f => PatchMapWithMove k (f a) -> f (PatchMapWithMove k a) # mapM :: Monad m => (a -> m b) -> PatchMapWithMove k a -> m (PatchMapWithMove k b) # sequence :: Monad m => PatchMapWithMove k (m a) -> m (PatchMapWithMove k a) # | |||||
Ord k => Monoid (PatchMapWithMove k v) Source # | |||||
Defined in Data.Patch.MapWithMove Methods mempty :: PatchMapWithMove k v # mappend :: PatchMapWithMove k v -> PatchMapWithMove k v -> PatchMapWithMove k v # mconcat :: [PatchMapWithMove k v] -> PatchMapWithMove k v # | |||||
Ord k => Semigroup (PatchMapWithMove k v) Source # | Compose patches having the same effect as applying the
patches in turn: | ||||
Defined in Data.Patch.MapWithMove Methods (<>) :: PatchMapWithMove k v -> PatchMapWithMove k v -> PatchMapWithMove k v # sconcat :: NonEmpty (PatchMapWithMove k v) -> PatchMapWithMove k v # stimes :: Integral b => b -> PatchMapWithMove k v -> PatchMapWithMove k v # | |||||
(Ord k, Read k, Read v) => Read (PatchMapWithMove k v) Source # | |||||
Defined in Data.Patch.MapWithMove Methods readsPrec :: Int -> ReadS (PatchMapWithMove k v) # readList :: ReadS [PatchMapWithMove k v] # readPrec :: ReadPrec (PatchMapWithMove k v) # readListPrec :: ReadPrec [PatchMapWithMove k v] # | |||||
(Show k, Show v) => Show (PatchMapWithMove k v) Source # | |||||
Defined in Data.Patch.MapWithMove Methods showsPrec :: Int -> PatchMapWithMove k v -> ShowS # show :: PatchMapWithMove k v -> String # showList :: [PatchMapWithMove k v] -> ShowS # | |||||
(Eq k, Eq v) => Eq (PatchMapWithMove k v) Source # | |||||
Defined in Data.Patch.MapWithMove Methods (==) :: PatchMapWithMove k v -> PatchMapWithMove k v -> Bool # (/=) :: PatchMapWithMove k v -> PatchMapWithMove k v -> Bool # | |||||
(Ord k, Ord v) => Ord (PatchMapWithMove k v) Source # | |||||
Defined in Data.Patch.MapWithMove Methods compare :: PatchMapWithMove k v -> PatchMapWithMove k v -> Ordering # (<) :: PatchMapWithMove k v -> PatchMapWithMove k v -> Bool # (<=) :: PatchMapWithMove k v -> PatchMapWithMove k v -> Bool # (>) :: PatchMapWithMove k v -> PatchMapWithMove k v -> Bool # (>=) :: PatchMapWithMove k v -> PatchMapWithMove k v -> Bool # max :: PatchMapWithMove k v -> PatchMapWithMove k v -> PatchMapWithMove k v # min :: PatchMapWithMove k v -> PatchMapWithMove k v -> PatchMapWithMove k v # | |||||
Wrapped (PatchMapWithMove k v) Source # | |||||
Defined in Data.Patch.MapWithMove Associated Types
Methods _Wrapped' :: Iso' (PatchMapWithMove k v) (Unwrapped (PatchMapWithMove k v)) # | |||||
Ord k => Patch (PatchMapWithMove k v) Source # | Apply the insertions, deletions, and moves to a given | ||||
Defined in Data.Patch.MapWithMove Associated Types
Methods apply :: PatchMapWithMove k v -> PatchTarget (PatchMapWithMove k v) -> Maybe (PatchTarget (PatchMapWithMove k v)) Source # | |||||
PatchMapWithMove k1 v1 ~ t => Rewrapped (PatchMapWithMove k2 v2) t Source # | |||||
Defined in Data.Patch.MapWithMove | |||||
type Unwrapped (PatchMapWithMove k v) Source # | |||||
Defined in Data.Patch.MapWithMove | |||||
type PatchTarget (PatchMapWithMove k v) Source # | |||||
Defined in Data.Patch.MapWithMove |
patchMapWithMoveNewElements :: PatchMapWithMove k v -> [v] Source #
Returns all the new elements that will be added to the Map
.
patchMapWithMoveNewElementsMap :: PatchMapWithMove k v -> Map k v Source #
Return a
with all the inserts/updates from the given Map
k v
.PatchMapWithMove
k v
unsafePatchMapWithMove :: Map k (NodeInfo k v) -> PatchMapWithMove k v Source #
Wrap a
representing patch changes into a Map
k (NodeInfo k v)
, without checking any invariants.PatchMapWithMove
k v
Warning: when using this function, you must ensure that the invariants of PatchMapWithMove
are preserved; they will not be checked.
newtype PatchIntMap a Source #
Patch
for IntMap
which represents insertion or deletion of keys in the mapping.
Internally represented by 'IntMap (Maybe a)', where Just
means insert/update
and Nothing
means delete.
Constructors
PatchIntMap | |
Fields
|
Instances
Functor PatchIntMap Source # | |||||
Defined in Data.Patch.IntMap Methods fmap :: (a -> b) -> PatchIntMap a -> PatchIntMap b # (<$) :: a -> PatchIntMap b -> PatchIntMap a # | |||||
Foldable PatchIntMap Source # | |||||
Defined in Data.Patch.IntMap Methods fold :: Monoid m => PatchIntMap m -> m # foldMap :: Monoid m => (a -> m) -> PatchIntMap a -> m # foldMap' :: Monoid m => (a -> m) -> PatchIntMap a -> m # foldr :: (a -> b -> b) -> b -> PatchIntMap a -> b # foldr' :: (a -> b -> b) -> b -> PatchIntMap a -> b # foldl :: (b -> a -> b) -> b -> PatchIntMap a -> b # foldl' :: (b -> a -> b) -> b -> PatchIntMap a -> b # foldr1 :: (a -> a -> a) -> PatchIntMap a -> a # foldl1 :: (a -> a -> a) -> PatchIntMap a -> a # toList :: PatchIntMap a -> [a] # null :: PatchIntMap a -> Bool # length :: PatchIntMap a -> Int # elem :: Eq a => a -> PatchIntMap a -> Bool # maximum :: Ord a => PatchIntMap a -> a # minimum :: Ord a => PatchIntMap a -> a # sum :: Num a => PatchIntMap a -> a # product :: Num a => PatchIntMap a -> a # | |||||
Traversable PatchIntMap Source # | |||||
Defined in Data.Patch.IntMap Methods traverse :: Applicative f => (a -> f b) -> PatchIntMap a -> f (PatchIntMap b) # sequenceA :: Applicative f => PatchIntMap (f a) -> f (PatchIntMap a) # mapM :: Monad m => (a -> m b) -> PatchIntMap a -> m (PatchIntMap b) # sequence :: Monad m => PatchIntMap (m a) -> m (PatchIntMap a) # | |||||
FoldableWithIndex Int PatchIntMap Source # | |||||
Defined in Data.Patch.IntMap Methods ifoldMap :: Monoid m => (Int -> a -> m) -> PatchIntMap a -> m # ifoldMap' :: Monoid m => (Int -> a -> m) -> PatchIntMap a -> m # ifoldr :: (Int -> a -> b -> b) -> b -> PatchIntMap a -> b # ifoldl :: (Int -> b -> a -> b) -> b -> PatchIntMap a -> b # ifoldr' :: (Int -> a -> b -> b) -> b -> PatchIntMap a -> b # ifoldl' :: (Int -> b -> a -> b) -> b -> PatchIntMap a -> b # | |||||
FunctorWithIndex Int PatchIntMap Source # | |||||
Defined in Data.Patch.IntMap Methods imap :: (Int -> a -> b) -> PatchIntMap a -> PatchIntMap b # | |||||
TraversableWithIndex Int PatchIntMap Source # | |||||
Defined in Data.Patch.IntMap Methods itraverse :: Applicative f => (Int -> a -> f b) -> PatchIntMap a -> f (PatchIntMap b) # | |||||
Monoid (PatchIntMap a) Source # | |||||
Defined in Data.Patch.IntMap Methods mempty :: PatchIntMap a # mappend :: PatchIntMap a -> PatchIntMap a -> PatchIntMap a # mconcat :: [PatchIntMap a] -> PatchIntMap a # | |||||
Semigroup (PatchIntMap v) Source # |
| ||||
Defined in Data.Patch.IntMap Methods (<>) :: PatchIntMap v -> PatchIntMap v -> PatchIntMap v # sconcat :: NonEmpty (PatchIntMap v) -> PatchIntMap v # stimes :: Integral b => b -> PatchIntMap v -> PatchIntMap v # | |||||
Read a => Read (PatchIntMap a) Source # | |||||
Defined in Data.Patch.IntMap Methods readsPrec :: Int -> ReadS (PatchIntMap a) # readList :: ReadS [PatchIntMap a] # readPrec :: ReadPrec (PatchIntMap a) # readListPrec :: ReadPrec [PatchIntMap a] # | |||||
Show a => Show (PatchIntMap a) Source # | |||||
Defined in Data.Patch.IntMap Methods showsPrec :: Int -> PatchIntMap a -> ShowS # show :: PatchIntMap a -> String # showList :: [PatchIntMap a] -> ShowS # | |||||
Eq a => Eq (PatchIntMap a) Source # | |||||
Defined in Data.Patch.IntMap Methods (==) :: PatchIntMap a -> PatchIntMap a -> Bool # (/=) :: PatchIntMap a -> PatchIntMap a -> Bool # | |||||
Ord a => Ord (PatchIntMap a) Source # | |||||
Defined in Data.Patch.IntMap Methods compare :: PatchIntMap a -> PatchIntMap a -> Ordering # (<) :: PatchIntMap a -> PatchIntMap a -> Bool # (<=) :: PatchIntMap a -> PatchIntMap a -> Bool # (>) :: PatchIntMap a -> PatchIntMap a -> Bool # (>=) :: PatchIntMap a -> PatchIntMap a -> Bool # max :: PatchIntMap a -> PatchIntMap a -> PatchIntMap a # min :: PatchIntMap a -> PatchIntMap a -> PatchIntMap a # | |||||
Wrapped (PatchIntMap a) Source # | |||||
Defined in Data.Patch.IntMap Associated Types
Methods _Wrapped' :: Iso' (PatchIntMap a) (Unwrapped (PatchIntMap a)) # | |||||
DecidablyEmpty (PatchIntMap a) Source # | |||||
Defined in Data.Patch.IntMap Methods isEmpty :: PatchIntMap a -> Bool Source # | |||||
Patch (PatchIntMap a) Source # | Apply the insertions or deletions to a given | ||||
Defined in Data.Patch.IntMap Associated Types
Methods apply :: PatchIntMap a -> PatchTarget (PatchIntMap a) -> Maybe (PatchTarget (PatchIntMap a)) Source # | |||||
PatchIntMap a1 ~ t => Rewrapped (PatchIntMap a2) t Source # | |||||
Defined in Data.Patch.IntMap | |||||
type Unwrapped (PatchIntMap a) Source # | |||||
Defined in Data.Patch.IntMap | |||||
type PatchTarget (PatchIntMap a) Source # | |||||
Defined in Data.Patch.IntMap |
mapIntMapPatchWithKey :: (Int -> a -> b) -> PatchIntMap a -> PatchIntMap b Source #
Map a function Int -> a -> b
over all a
s in the given
(that is, all inserts/updates), producing a PatchIntMap
aPatchIntMap b
.
traverseIntMapPatchWithKey :: Applicative f => (Int -> a -> f b) -> PatchIntMap a -> f (PatchIntMap b) Source #
Map an effectful function Int -> a -> f b
over all a
s in the given
(that is, all inserts/updates), producing a PatchIntMap
af (PatchIntMap b)
.
patchIntMapNewElements :: PatchIntMap a -> [a] Source #
Extract all a
s inserted/updated by the given
.PatchIntMap
a
patchIntMapNewElementsMap :: PatchIntMap a -> IntMap a Source #
Convert the given
into an PatchIntMap
a
with all
the inserts/updates in the given patch.IntMap
a
newtype PatchDMap (k1 :: k -> Type) (v :: k -> Type) Source #
A set of changes to a DMap
. Any element may be inserted/updated or deleted.
Insertions are represented as
,
while deletions are represented as ComposeMaybe
(Just value)
.ComposeMaybe
Nothing
Constructors
PatchDMap | |
Fields
|
Instances
GCompare k2 => Monoid (PatchDMap k2 v) Source # | |||||
GCompare k2 => Semigroup (PatchDMap k2 v) Source # | |||||
GCompare k2 => DecidablyEmpty (PatchDMap k2 v) Source # | |||||
GCompare k2 => Patch (PatchDMap k2 v) Source # | Apply the insertions or deletions to a given | ||||
Defined in Data.Patch.DMap Associated Types
Methods apply :: PatchDMap k2 v -> PatchTarget (PatchDMap k2 v) -> Maybe (PatchTarget (PatchDMap k2 v)) Source # | |||||
type PatchTarget (PatchDMap k2 v) Source # | |||||
Defined in Data.Patch.DMap |
mapPatchDMap :: forall {k1} v v' (k2 :: k1 -> Type). (forall (a :: k1). v a -> v' a) -> PatchDMap k2 v -> PatchDMap k2 v' Source #
traversePatchDMap :: forall {k1} f v v' (k2 :: k1 -> Type). Applicative f => (forall (a :: k1). v a -> f (v' a)) -> PatchDMap k2 v -> f (PatchDMap k2 v') Source #
traversePatchDMapWithKey :: forall {k1} m k2 v v'. Applicative m => (forall (a :: k1). k2 a -> v a -> m (v' a)) -> PatchDMap k2 v -> m (PatchDMap k2 v') Source #
weakenPatchDMapWith :: forall {k1} v v' (k2 :: k1 -> Type). (forall (a :: k1). v a -> v') -> PatchDMap k2 v -> PatchMap (Some k2) v' Source #
patchDMapToPatchMapWith :: forall {k1} v (a :: k1) v' k2. (v a -> v') -> PatchDMap (Const2 k2 a) v -> PatchMap k2 v' Source #
const2PatchDMapWith :: forall {k1} k2 v v' (a :: k1). (v -> v' a) -> PatchMap k2 v -> PatchDMap (Const2 k2 a) v' Source #
const2IntPatchDMapWith :: forall {k} v f (a :: k). (v -> f a) -> PatchIntMap v -> PatchDMap (Const2 Key a) f Source #
Convert a
into a PatchIntMap
v
using a function PatchDMap
(Const2
Int a) v'v -> v' a
.