papa-0.4.0: src/Papa/Base/Data/Function.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -Wall #-}
module Papa.Base.Data.Function (
module P,
flip,
) where
import Data.Function as P (
fix,
on,
($),
(&),
)
import Data.Functor (Functor (fmap))
{-# INLINE flip #-}
-- | Apply a functorial function to a value.
--
-- >>> import Data.Maybe (Maybe(..))
-- >>> flip (Just (\x -> x)) 5
-- Just 5
-- >>> flip [(\x -> x), (\x -> x)] 3
-- [3,3]
flip ::
(Functor f) =>
f (a -> b) ->
a ->
f b
flip f a =
fmap (\k -> k a) f