module Optic.Traversal
  ( -- * Traversal
    Traversal
  , Traversal'
  , traverseOf
  , forOf
  , sequenceAOf
  , types
    -- * Each
  , Each(..)
    -- * Ixed
  , Ixed(..)
  , Index
  , IxValue
  ) where

import Control.Lens.At             (Index, IxValue, Ixed(ix))
import Control.Lens.Each           (Each(each))
import Control.Lens.Traversal      (Traversal, Traversal', forOf, sequenceAOf,
                                    traverseOf)
import Data.Generics.Product.Types (types)