# Lesson 11: Identity and interchange

Contents
• The identity law
• Fantastic violation
• Map violation
• The (>>) type
• Relationship to fmap
• The interchange law
• The right-sectioned operator
• Shape-preserving mappings
• A Maybe with two Nothings
• A forgetful List

In the last session, we discussed two of the four Applicative laws.

 ☑ Homomorphism `pure f <*> pure x` = `pure (f x)` ☑ Composition `pure (.) <*> u <*> v <*> w` = `u <*> (v <*> w)` ☐ Identity `pure id <*> v` = `v` ☐ Interchange `u <*> pure y` = `pure (\$ y) <*> u`

For three venerated properties of functions, we posed the question: Is `pure` a homomorphism that preserves them all? We have seen that the composition law ensures the first. Identity and interchange will provide the other two.

 ☑ ❤️1 apply ( compose `f` `g` ) `x` = apply `f` ( apply `g` `x` ) ☐ ❤️2 apply identity `x` = `x` ☐ ❤️3 If apply `f` `x` = apply `g` `x` for all `x`, then `f` = `g`

Recall that in the Applicative context, we assume these definitions:

• identity is `pure id`
• apply is `(<*>)`
• compose is `\f g -> pure (.) <*> f <*> g`