cooked-validators
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cooked.Tweak.Insert

Description

This module exposes tweaks to insert elements within various structures focused in a TxSkel.

Synopsis

Generic insert functions

insertUsingTweak :: (Member Tweak effs, Is k A_Setter) => Optic' k is TxSkel (f a) -> (a -> f a -> f a) -> a -> Sem effs () Source #

Inserts an element in a structure using a custom function

appendAfterTweak :: (Member Tweak effs, Is k A_Setter, Semigroup a) => Optic' k is TxSkel a -> a -> Sem effs () Source #

Appending an element in a Semigroup after the existing element

appendBeforeTweak :: (Member Tweak effs, Is k A_Setter, Semigroup a) => Optic' k is TxSkel a -> a -> Sem effs () Source #

Appending an element in a Semigroup after the existing element

Insert elements in lists

insertThereTweak :: (Member Tweak effs, Is k A_Setter) => Optic' k is TxSkel [a] -> Int -> a -> Sem effs () Source #

Inserts an element at a specific position in a list focused in a TxSkel. If the index is beyond or equal to the list length, inserts it at the end of the list.

insertFirstTweak :: (Member Tweak effs, Is k A_Setter) => Optic' k is TxSkel [a] -> a -> Sem effs () Source #

Inserts an element at the first position in a list focused in a TxSkel.

insertLastTweak :: (Member Tweak effs, Is k A_Setter) => Optic' k is TxSkel [a] -> a -> Sem effs () Source #

Inserts an element at the end of a list focused in a TxSkel.

Insert elements in sets

insertInTweak :: (Members '[Tweak, NonDet] effs, Is k A_Traversal, Ord a) => Optic' k is TxSkel (Set a) -> a -> Sem effs () Source #

Inserts an element in a set focused in a TxSkel. Fails if the element is already present in the set.

Insert elements in maps

insertAtTweak :: (Members '[Tweak, NonDet] effs, Is k A_Traversal, Ord k) => Optic' k is TxSkel (Map k v) -> k -> v -> Sem effs () Source #

Inserts an element in a map focused in a TxSkel. Fails if the key is already present in the map.