It seems that Zygote silently fails when differentiating a function that takes and outputs CircularArrays, using a `Zygote.Buffer`

to allow mutation. Here’s a comparison with ForwardDiff:

```
using Zygote, ForwardDiff, CircularArrays
a = CircularArray([1.0])
function f(x)
new = Zygote.Buffer(x)
new[1] = x[1] + x[2]
return copy(new)
end
display(Zygote.jacobian(f, a)[1])
# 1×1 CircularArray(::Matrix{Float64}):
# 1.0
display(ForwardDiff.jacobian(f, a))
# 1×1 CircularArray(::Matrix{Float64}):
# 2.0
```

```
b = [1.0]
function g(x)
new = Zygote.Buffer(x)
new[1] = x[1] + x[1]
return copy(new)
end
display(Zygote.jacobian(g, b)[1])
# 1×1 Matrix{Float64}:
# 2.0
display(ForwardDiff.jacobian(g, b))
# 1×1 Matrix{Float64}:
# 2.0
```

Is this a known limitation of Zygote ? Given the simplicity of the implementation of CircularArrays, I would’ve expected it to work.

Thank you!