1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
----------------------------------------------------------------------------- --- This simple module defines the const functor known from Haskell's --- base libraries. It defines a wrapper around a constant value that --- "ignores" functions mapped over it. ----------------------------------------------------------------------------- module Data.Functor.Const ( Const (..) ) where --- The `Const` functor which returns a constant for any `fmap`, i.e., --- a wrapper around a constant value that ignores functions mapped over it. --- --- Example: --- --- > fmap (++ "world") (Const "Hello") --- Const "Hello" newtype Const a _ = Const { getConst :: a } deriving (Eq, Ord, Read, Show) instance Functor (Const a) where fmap _ (Const x) = Const x |