instance Semigroup p => Semigroup (e |= p), instance Monoid p => Monoid (e |= p)