base-4.20.0.0: src/Data/Functor.hs
{-# LANGUAGE Safe #-}
-- |
--
-- Module : Data.Functor
-- Copyright : (c) The University of Glasgow 2001
-- License : BSD-style (see the file libraries/base/LICENSE)
--
-- Maintainer : libraries@haskell.org
-- Stability : provisional
-- Portability : portable
--
--
-- A type @f@ is a Functor if it provides a function @fmap@ which, given any types @a@ and @b@,
-- lets you apply any function of type @(a -> b)@ to turn an @f a@ into an @f b@, preserving the
-- structure of @f@.
--
-- ==== __Examples__
--
-- >>> fmap show (Just 1) -- (a -> b) -> f a -> f b
-- Just "1" -- (Int -> String) -> Maybe Int -> Maybe String
--
-- >>> fmap show Nothing -- (a -> b) -> f a -> f b
-- Nothing -- (Int -> String) -> Maybe Int -> Maybe String
--
-- >>> fmap show [1,2,3] -- (a -> b) -> f a -> f b
-- ["1","2","3"] -- (Int -> String) -> [Int] -> [String]
--
-- >>> fmap show [] -- (a -> b) -> f a -> f b
-- [] -- (Int -> String) -> [Int] -> [String]
--
-- The 'fmap' function is also available as the infix operator '<$>':
--
-- >>> fmap show (Just 1) -- (Int -> String) -> Maybe Int -> Maybe String
-- Just "1"
--
-- >>> show <$> (Just 1) -- (Int -> String) -> Maybe Int -> Maybe String
-- Just "1"
module Data.Functor
(Functor(..),
($>),
(<$>),
(<&>),
unzip,
void
) where
import GHC.Internal.Data.Functor