An identity function returns the argument it receives without changing it. In functional programs, it acts as a simple building block for passing values through higher-order functions and combinators. section 4.6
A function that changes nothing
The identity function has the shape identity :: (a) -> a: it accepts a value and returns that same value. This makes it useful when point-free code needs a function argument, when testing combinator flow, or when extracting data from an encapsulated type. section 4.6
identity :: (a) -> a
Use the type signature to recognize that the input and output have the same role and value. section 4.6


