This is a repost of my question at MSE from 7 months ago, to which I haven't been able to find an answer yet.

I am looking for a CAS (possibly incl. additional packages/libraries) that can compute *generic* **non-commutative** differential expressions.
Let me illustrate what I mean by two examples.

Let $(R,\partial)$ be a *generic* **non-commutative** differential ring (i.e. $\partial$ is a derivation on $R$), say of characteristic 0 for simplicity.
Let $f \in R$ be an *abstract* (or *generic* if you prefer) element. Then it should be able to express
$$
\partial^2(1+f)^2
$$
as
$$
2 \partial^2(f) + \partial^2(f) f + 2 \partial(f)^2 + f \partial^2(f)
$$
and
$$
(f\partial)^2 f
$$
as
$$
f \partial(f)^2 + f^2 \partial^2 (f),
$$
where the elements $f$ and $\partial^k(f)$ are treated as **black boxes**.
In particular, the elements $\partial^k(f)$ are not assumed to commute with each other in any way for differing values of $k \geq 0$.