# "unwrap" returns 0 if pushing anti-commuting constant past a mixed object

I found this bug in Cadabra 1.x, but it remains in Cadabra 2.2.1.

It is likely related to a prior bug I found: https://cadabra.science/qa/761/bug-in-%40unwrap-for-cadabra-1-42 but I list it here because the failure behavior is interesting!

{A,B,C}::AntiCommuting.
\partial{#}::Derivative.
{F,G,H}::Depends(\partial{#}).

Now the following returns 0 (!).

Exp := \partial{(A F + G) C};
unwrap(Exp);

I expect the issue is that there is no easy way to push C past (A F + G) because the relative sign between A F and G would flip. Instead if one distributes or applies product rule prior to unwrapping, the result returns as expected.

The following, however, does work as expected:

Exp := \partial{(A F + B G) C};
unwrap(Exp);

giving Exp = - C * \partial{A F + B G}.

Good one. Internally, when Cadabra cannot figure out how to commute two objects, an internal function somewhere returns '0', instead of '+1' or '-1'. That zero should have made unwrap stop, but instead it just went ahead and then multiplied the resulting unwrapped expression with '0'.
Now fixed in github, can you give it a shot? It will leave that first expression untouched, because it cannot move C through A F + G without flipping that 2nd factor to A F - G, and it will not do that kind of thing. Hope that's ok for now.