module Lens.Family.State.Focus where import Control.Applicative (Applicative, pure, (<*>)) import Control.Monad (liftM) import Data.Monoid (Monoid, mempty, mappend) newtype Focusing m c a = Focusing { unFocusing :: m (c, a) } instance Monad m => Functor (Focusing m c) where fmap f (Focusing m) = Focusing (liftM (fmap f) m)