0 | module Control.Lens.Each
2 | import Control.Monad.Identity
3 | import Control.Applicative.Const
4 | import Control.Lens.Optic
5 | import Control.Lens.Iso
6 | import Control.Lens.Lens
7 | import Control.Lens.Optional
8 | import Control.Lens.Traversal
9 | import Control.Lens.Indexed
19 | interface Each s t a b | s where
25 | each : Traversal s t a b
32 | interface Each s t a b => IEach i s t a b | s where
38 | ieach : IndexedTraversal i s t a b
42 | [Traversed] Traversable f => Each (f a) (f b) a b where
46 | [Ordinal] Num i => Each s t a b => IEach i s t a b where
47 | ieach = iordinal each
51 | Each (Identity a) (Identity b) a b where
55 | Each (Const a b) (Const c d) a c where