@@ -7,17 +7,15 @@ import Data.Lens.Index (ix)
77import Data.Lens.Setter (iover )
88import Data.Lens.Lens (ilens , IndexedLens , cloneIndexedLens )
99import Data.Lens.Fold ((^?))
10- import Data.Lens.Prism .Partial ((^?!))
10+ import Data.Lens.Fold .Partial ((^?!), (^@ ?!))
1111import Data.Lens.Zoom (Traversal , Traversal' , Lens , Lens' , zoom )
1212import Data.Tuple (Tuple (..))
1313import Data.Maybe (Maybe (..))
1414import Data.Either (Either (..))
15- import Partial.Unsafe (unsafePartial )
16-
1715import Control.Monad.Eff (Eff )
1816import Control.Monad.Eff.Console (CONSOLE , logShow )
1917import Control.Monad.State (evalState , get )
20-
18+ import Partial.Unsafe ( unsafePartial )
2119
2220-- Traversing an array nested within a record
2321foo :: forall a b r . Lens { foo :: a | r } { foo :: b | r } a b
@@ -34,7 +32,6 @@ doc = { foo: Just { bar: [ "Hello", " ", "World" ]} }
3432bars :: forall a b . Traversal (Foo a ) (Foo b ) a b
3533bars = foo <<< _Just <<< bar <<< traversed
3634
37-
3835-- Get the index of a deeply nested record
3936type BarRec = { foo :: Array (Either { bar :: Array Int } String ) }
4037data Bar = Bar BarRec
@@ -51,8 +48,6 @@ _0Justbar = _Bar <<< foo <<< ix 0
5148_1bars :: Traversal' Bar Int
5249_1bars = _0Justbar <<< _Left <<< bar <<< ix 1
5350
54-
55-
5651-- Tests state using zoom
5752stateTest :: Tuple Int String
5853stateTest = evalState go (Tuple 4 [" Foo" , " Bar" ]) where
@@ -70,5 +65,6 @@ main = do
7065 logShow $ view bars doc
7166 logShow $ doc2 ^? _1bars
7267 logShow $ unsafePartial $ doc2 ^?! _1bars
68+ logShow $ unsafePartial $ Tuple 0 1 ^@?! i_2
7369 logShow stateTest
7470 logShow cloneTest
0 commit comments