The formalism presented here is based on [9] and
assumes familiarity with the notions and notations summarized in Appendix
Section A.2.
I will use the programming view of monoids exposed there using the
specific notation of monoid attributes, in particular for sets, bags, and
lists. I will also assume basic familiarity with naive
-calculus
and associated typing as presented in Appendix Section A.3.