Reconciling Abstraction with High Performance: A MetaOCaml Approach teaches the reader how to write typed code generators, how to make them modular, and how to gradually introduce domain-specific optimizations with MetaOCaml. Assuming no prior knowledge of MetaOCaml and only a basic familiarity with functional programming, it explains and illustrates how to implement a simple domain-specific language (DSL) for linear algebra, with layers of optimizations...