{-# 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__ = forall (p :: * -> * -> * -> *) a b s t i.
Mapping p =>
((a -> b) -> s -> t) -> p i a b -> p i s t
roam forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
{-# INLINE mapped__ #-}