{-# LANGUAGE CPP #-}
module Functor
(
Functor(..)
, (<$>)
, ($>)
#if MIN_VERSION_base(4,11,0)
, (<&>)
#endif
, void
, unzip
, mapped
, Apply(..)
, liftF3
, MaybeApply(..)
, Static(..)
, Alt(..)
, Plus(..)
, Bind(..)
, (-<<)
, Extend(..)
, MFunctor(..)
) where
import Control.Lens.Setter (mapped)
import Control.Monad.Morph (MFunctor, hoist)
import Data.Functor (Functor(fmap, (<$)), void, ($>), (<$>))
#if MIN_VERSION_base(4,11,0)
import Data.Functor ((<&>))
#endif
import Data.Functor.Alt (Alt((<!>)))
import Data.Functor.Apply (Apply(liftF2, (.>), (<.), (<.>)),
MaybeApply(MaybeApply, runMaybeApply), liftF3)
import Data.Functor.Bind (Bind(join, (>>-)), (-<<))
import Data.Functor.Extend (Extend(duplicated, extended))
import Data.Functor.Plus (Plus(zero))
import Data.List.NonEmpty (unzip)
import Data.Semigroupoid.Static (Static(Static, runStatic))