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-188.8.131.52/docs/Prelude.html).
There is an instance `Semigroup a => Monoid (Maybe a)` in [Data.Monoid](https://hackage.haskell.org/package/base-184.108.40.206/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.