I would prefer that the logic here allows the `factory` arg to have precedence, which is the behavior of the parent class `Coerced`.

I think this should do the trick:

```
if factory is None:
    if default is None:
        kwargs = kwargs or {}
        factory = lambda: np.array(default)
    else:
        factory = lambda: ()
super(Array, self).__init__(
    np.ndarray, factory=factory, coercer=np.array,
)
```
        factory = lambda: np.array(default, **(kwargs or {}))