It appears that we can generalize cochain complex to quasi-cochain complex, that still allow us to define cohomology.
Definition: A quasi-cochain complex is a sequence of commutative monoids $M_n$ connected by monoid-homomorphisms $d_n$: \begin{align} \cdots \overset{d_{n-1}}{\rightarrow} M_n \overset{d_n}{\rightarrow} M_{n+1} \overset{d_{n+1}}{\rightarrow} M_{n+2} \overset{d_{n+2}}{\rightarrow} \cdots , \end{align} such that $d_{n+1}d_n$ maps $M_n$ to $0_{n+2}$ (the identity in $M_{n+2}$), the img$(d_n)$ is an Abelian group, and the subset of $M_n$, $A_n=\{a_n|d_n(a_n)=0,a_n\in M_n\}$ is an Abelian group, --Edit-- and the Img$(d_n)$ is also an Abelian group.
In the quasi-cochain complex, we can define the cohomology classes since both $\text{Ker}(d_n)$ and $\text{Img}(d_{n-1})$ are Abelian groups: $H^n=\text{Ker}(d_n)/\text{Img}(d_{n-1})$.
I wonder
(1) if the above definition is OK
(2) Has any one studied such a quasi-cochain complex.