shithub: MicroHs

ref: bf737faf9dd2219b202d4c3d1eb62b942202bc9f
dir: /lib/Data/Functor/Identity.hs/

View raw version
-- Copyright 2023 Lennart Augustsson
-- See LICENSE file for full license.
module Data.Functor.Identity(Identity(..)) where
import Primitives
import Control.Applicative
import Control.Monad
import Data.Function
import Data.Functor
import Data.Int
import Data.Ord
import Text.Show

newtype Identity a = Identity a

instance Functor Identity where
  fmap f (Identity a) = Identity (f a)

instance Applicative Identity where
  pure a = Identity a
  Identity f <*> Identity a = Identity (f a)

instance Monad Identity where
  Identity a >>= f = f a

instance forall a . (Show a) => Show (Identity a) where
  showsPrec p (Identity a) = showParen (p >= 11) (showString "Identity " . showsPrec 11 a)