protolude-0.2: src/Functor.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE Safe #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Functor (
Functor(..),
($>),
(<$>),
(<<$>>),
void,
) where
import Data.Function ((.))
#if MIN_VERSION_base(4,7,0)
import Data.Functor (
Functor(..)
, ($>)
, (<$>)
, void
)
#else
import Data.Functor (
Functor(..)
, (<$>)
)
import Data.Function (flip)
infixl 4 $>
($>) :: Functor f => f a -> b -> f b
($>) = flip (<$)
void :: Functor f => f a -> f ()
void x = () <$ x
#endif
infixl 4 <<$>>
(<<$>>) :: (Functor f, Functor g) => (a -> b) -> f (g a) -> f (g b)
(<<$>>) = fmap . fmap