If this instance was implemented via `ST`, then `purescript-backend-optimizer` would inline things when possible. However, it seems that we can't currently do this because `arrays` depends on `nonempty`, which depends on `unfoldable`. AFAIK, this dependency chain exists because `arrays` has functions like [`fromNonEmpty`](https://pursuit.purescript.org/packages/purescript-arrays/7.2.1/docs/Data.Array.NonEmpty#v:fromNonEmpty), though I don't think anyone uses `NonEmpty Array`. ```mermaid flowchart TD arrays ---> nonempty nonempty ---> unfoldable ``` If we updated `arrays` to depend on `unfoldable` and `nonempty` to depend on `arrays`, then we could add an `Unfoldable` instance for `Array` that uses `ST` ```mermaid flowchart TD nonempty ---> arrays arrays ---> unfoldable ```