@@ -64,7 +64,12 @@ typeChangingManualCompose = typeChangingManual . typeChangingManual
6464newtype L s a = L (Lens' s a)
6565
6666intTraversalManual :: Traversal' Record3 Int
67−intTraversalManual = types
67+intTraversalManual f (MkRecord3 a b c d e f') =
68+ (\a1 a2 a3 a4 -> MkRecord3 a1 a2 c a3 e a4) <$> f a <*> f b <*> f d <*> f f'
69+
70+intTraversalDerived :: Traversal' Record3 Int
71+intTraversalDerived = types
72+
6873
6974intTraversalDerived3 :: Traversal' (Record4 Int) Int
7075intTraversalDerived3 = genericTraverse
@@ -129,5 +134,6 @@ inspect $ 'subtypeLensManual === 'subtypeLensGeneric
129134inspect $ 'typeChangingManual === 'typeChangingGeneric
130135inspect $ 'typeChangingManual === 'typeChangingGenericPos
131136inspect $ 'typeChangingManualCompose === 'typeChangingGenericCompose
137+inspect $ 'intTraversalManual === 'intTraversalDerived
132138
133139--inspect $ 'sum1PrismManual === 'sum1PrismB