Auto-fuse operations (alpha X + Y, alpha A * B + beta C ...)
Arraymancer can leverage the nim compiler and term-rewriting macros to automatically detect operations that can be fused.

This is probably similar to what Tensorflow is doing with their XLA compiler.
See: https://developers.googleblog.com/2017/03/xla-tensorflow-compiled.html
and the [overview](https://www.tensorflow.org/performance/xla/).

A term-rewriting example is already included with fusing toTensor + reshape operations:
https://github.com/mratsim/Arraymancer/blob/05e2f41651950c290ec20d71ebd679bd3f74ea75/src/arraymancer/term_rewriting.nim#L40-L45