@@ -5,7 +5,7 @@ import Prelude
55import Control.Monad.State (evalState , get )
66import Data.Distributive (class Distributive )
77import Data.Either (Either (..))
8- import Data.Lens (Getter' , _1 , _2 , _Just , _Left , collectOf , lens , takeBoth , traversed , view )
8+ import Data.Lens (Getter' , _1 , _2 , _Just , _Left , collectOf , lens , preview , takeBoth , traversed , view )
99import Data.Lens.Fold ((^?))
1010import Data.Lens.Fold.Partial ((^?!), (^@?!))
1111import Data.Lens.Grate (Grate , cloneGrate , grate , zipWithOf )
@@ -14,7 +14,8 @@ import Data.Lens.Indexed (itraversed, reindexed)
1414import Data.Lens.Lens (ilens , IndexedLens , cloneIndexedLens )
1515import Data.Lens.Record (prop )
1616import Data.Lens.Setter (iover )
17- import Data.Lens.Zoom (IndexedTraversal' , Traversal , Traversal' , Lens , Lens' , zoom )
17+ import Data.Lens.Traversal (cloneTraversal )
18+ import Data.Lens.Zoom (ATraversal' , IndexedTraversal' , Traversal , Traversal' , Lens , Lens' , zoom )
1819import Data.Maybe (Maybe (..))
1920import Data.Symbol (SProxy (..))
2021import Data.Tuple (Tuple (..), fst , snd )
@@ -94,6 +95,15 @@ collectOfTest = collectOf aGrateExample
9495summing :: Tuple Int Int -> Tuple Int Int -> Tuple Int Int
9596summing = zipWithOf (cloneGrate aGrateExample) (+)
9697
98+ -- Test cloning of traversals
99+ cloneTraversalTest :: Maybe Int
100+ cloneTraversalTest =
101+ let t :: Traversal' (Array Int ) Int
102+ t = ix 1
103+ wrapper :: { traversal :: ATraversal' (Array Int ) Int }
104+ wrapper = { traversal: t }
105+ in preview (cloneTraversal wrapper.traversal) [ 0 , 1 , 2 ]
106+
97107main :: Effect Unit
98108main = do
99109 logShow $ view bars doc
@@ -104,3 +114,4 @@ main = do
104114 logShow stateTest
105115 logShow cloneTest
106116 logShow (summing (Tuple 1 2 ) (Tuple 3 4 ))
117+ logShow cloneTraversalTest
0 commit comments