Add __array_interface__ to FunctionChain

This dunder attribute specifies how numpy converts objects to arrays. Since FunctionChain is currently iterable, this means np.array(chain) will result in array([*chain.functions]) which is arguably not what one wants.

Alternatively, __iter__() could be removed. It's not really necessary as functions is exposed.

Merge request reports

Loading