This module contains a writer-like Applicative for giving
monoidal annotations to underlying computations. The
annotations are available before running the computations.
It also allows tagging different parts of a computation as
separate steps, so that progress notifications can be
emitted during execution. Optional steps are allowed.