use spire's monoid