Let us make the array functor slightly uglier.
According to Functor's definition, for every type a,
we first need to define the type F(a),
the set of all admissible values for our Functor.
For the array Functor Array, that would be the set [a] of all arrays with entries of type a.
We now define a new Functor F, where we slightly change the set of values F(a):
Namely, we say that an array arr is of type F(a) if either