    {-# OPTIONS_HADDOCK not-home #-}

    -- | Internal implementation details of setters.
    --
    -- This module is intended for internal use only, and may change without warning
    -- in subsequent releases.
    module Optics.Internal.Setter where

    import Data.Profunctor.Indexed

    import Optics.Internal.Optic

    -- | Internal implementation of 'Optics.Setter.mapped'.
    mapped__
      :: (Mapping p, Functor f)
      => Optic__ p i i (f a) (f b) a b
    mapped__ :: forall (p :: * -> * -> * -> *) (f :: * -> *) i a b.
    (Mapping p, Functor f) =>
    Optic__ p i i (f a) (f b) a b
    mapped__ = ((a -> b) -> f a -> f b) -> p i a b -> p i (f a) (f b)
    forall a b s t i. ((a -> b) -> s -> t) -> p i a b -> p i s t
    forall (p :: * -> * -> * -> *) a b s t i.
    Mapping p =>
    ((a -> b) -> s -> t) -> p i a b -> p i s t
    roam (a -> b) -> f a -> f b
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap
    {-# INLINE mapped__ #-}