Comonads, Applicative Functors, Monads and Other Principled Things · HackerTrans