ndRing

inline fun <T, A : Ring<T>, R> A.ndRing(noinline bufferFactory: BufferFactory<T>, vararg shape: Int, action: BufferedRingND<T, A>.() -> R): R