<p>Joule Standard Library - N-Dimensional Arrays
First-class multi-dimensional array types with compile-time rank tracking,
zero-copy views, explicit broadcasting, and energy-aware operations.</p>
<h2>Core Types</h2>
<ul>
<li><code>NDArray[T; N]</code> — Owned heap data, compile-time rank N</li>
<li><code>NDView[T; N]</code> — Borrowed zero-copy view into an NDArray</li>
<li><code>CowArray[T; N]</code> — Shared data with copy-on-write semantics</li>
<li><code>DynArray[T]</code> — Dynamic rank determined at runtime</li>
</ul>
<h2>Design Principle: Explicit Broadcasting</h2>
<p>Broadcasting is NEVER implicit. <code>a + b</code> requires matching shapes.
Use <code>broadcast_add(a, b)</code> to make the energy cost visible.</p>