### Flipping out

I came across the excellent Monad Challenges, a collection of exercises designed to take you through what have become some of the standard example monads and take you through the process that motivates monads as a way to handle these seemingly diverse data structures. Both the Monad Challenges and the 20 Intermediate Exercises are well worth your time. Doing them both is helping me a lot.

That said, they don't quite match up. 20IE's

I'd like to think there's some sort of distributive-like law to be found and used here... watch this space.

That said, they don't quite match up. 20IE's

**banana**is**flip bind**and**apple**is**flip ap**. (This isn't unique; the also excellent*Learning Haskell from first principles*has as an exercise writing**bind**in terms of**fmap**and**join**, but the declaration it gives has the type of**flip bind**. The authors do point this out.) As a result, I find myself with something that there's got to be some way to simplify, of the form**foo = flip $ (flip mumble) . (flip frotz)**I'd like to think there's some sort of distributive-like law to be found and used here... watch this space.

## Comments