Let's consider ArrayAccess as a generic type. In order to preseve backwards-
compatibility let's default the types to any type. Although I don't like the
name mixed
this is what documentation uses so I'll use it here:
class ArrayAccess<Element = mixed, Key = mixed> {
function offsetExists(Key $offset): boolean;
function offsetGet(Key $offset): Value;
function offsetSet(?Key $offset, Element $value): void;
function offsetUnset(Key $offset): void;