Inprogramming languages,monomorphization is acompile-time process wherepolymorphic functions are replaced by many monomorphic functions for each unique instantiation.[1] It is considered beneficial to undergo the mentioned transformation because it results in the outputintermediate representation (IR) having specific types, which allows for more effective optimization. Additionally, many IRs are intended to be low-level and do not accommodate polymorphism. The resulting code is generally faster thandynamic dispatch, but may require more compilation time and storage space due to duplicating the function body.[2][3][4][5][6][7]
^Lutze, Matthew; Schuster, Philipp; Brachthäuser, Jonathan Immanuel (2025). "The Simple Essence of Monomorphization".Proceedings of the ACM on Programming Languages.9 (OOPSLA1). Association for Computing Machinery.doi:10.1145/3720472.
^Bonicho, Richard; Déharbe, David; Tavares, Claudia."Extending Smt-Lib v2 with λ-Terms and Polymorphism"(PDF).Proceedings of the 12th International Workshop on Satisfiability Modulo Theories, (SMT 2014).Archived(PDF) from the original on 2023-10-03.