Hey Chris,

After a quick glance at Simon's publications, I think maple might be a better lingua franca than Haskell if we are talking programming languages.

Haskell is pretty niche.

That being said, I think you are wrong here:

> It's unfortunately not the.default monoid on Maybe a. That uses Nothing as an identity.

`Maybe a` does not have an instance for `Monoid` in the [Prelude](https://hackage.haskell.org/package/base-4.11.1.0/docs/Prelude.html).

There is an instance `Semigroup a => Monoid (Maybe a)` in [Data.Monoid](https://hackage.haskell.org/package/base-4.11.1.0/docs/Data-Monoid.html).

You can define `Monoid` semantics like you want `Maybe a`, but you might need `-fno-warn-orphan-instances` to be turned on.