Wrapper library around `orthotope` that defines nested arrays, including tuples, of (eventually) unboxed values. The arrays are represented in struct-of-arrays form via the `Data.Vector.Unboxed` data family trick. Below the surface layer, there is a more low-level wrapper around `orthotope` that defines an array type type-indexed by `[Maybe Nat]`: some dimensions are shape-typed (i.e. have their size statically known), and some not.