Thinking of monads
A monadic iterator
had a breakthrough with Function unification