# Blog articles/Monads

From HaskellWiki

## Contents

## Monads

- The monad laws
- The Trivial Monad
- Tracking tainted data: Homeland Security Threat Level Monad
- Monads: a field guide
- Variable substitution gives a ... monad
- The monad behind every zipper
- Monads for vector spaces, probability and quantum mechanics pt. I
- Monads, Vector Spaces and Quantum Mechanics pt. II
- How to write tolerably efficient optimzation code without really trying...
- Monads from Algebra and the the Gray Code from Groups
- Monads, Kleisli Arrows, Comonads and other Rambling Thoughts
- Quick interpreters with the Reader monad
- Monads
- More on Haskell, Side Effects and Code Reuse
- A First Step Into Monads
- More Monads: Stateful Programming
- The theory of monads
- A newbie in Haskell land or another monad tutorial
- A newbie in Haskell land : The (->) monad
- Smart classification using Bayesian monads
- 3 open problems with monads
- Monads in 15 minutes: Backtracking and Maybe
- How to make Data.Set a monad
- Monads work because they have a tight interface
- Haskell: bootstrapping into a clue about monads
- Why monads matter
- Monads through Pictures
- Monads as universe helpers
- Simple state monad
- repeat and sequence
- What's a monad?
- Parameterized Monads in Haskell
- Monads! (and Why Monad Tutorials Are All Awful)
- Monads as computation
- Monads are hard to teach
- Haskell State Accessors (second attempt: Composability)

## Monad transformers

- A twisted history of monad transformers
- How To Use Monad Transformers
- Local and global side effects with monad transformers
- Grok monad transformers
- A Simple Game with StateT

### Continuation monads

## Arrows

- Concatenative programming in Haskell's Arrows
- Arrows and security
- Run length encoding in Haskell
- Haskell: Explaining Arrows through XML Transformations
- Playing with Arrows
- My Evolution as a Haskell Programmer: Factorial with Arrows

## Comonads

- Comonads and reading from the future
- Evaluating cellular automata is co-monadic
- Understanding comonads