というか、Functorとモノイドを別々にしている時点でHaskellに数学的整合性を求める方が間違っている