TAPF Lectures Some examples for programming with monads in Haskell: labelling binary trees using a state monad greedy and exaustive coin change solutions using Maybe and list monads, respectively solving the SEND + MORE = MONEY puzzle using the list monad