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 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.