Description
Allow for compile time polymorphism within functions by adding function templates. This will require syntax additions for: defining type parameters for a function, explicitly defining type arguments for a function.
Compiler additions will require: generating and type checking function instances, as well as adjustments to type inference for implicit template instantiation.
Serialiser should also include function deduplication so that function instances are only written once if identical.
Description
Allow for compile time polymorphism within functions by adding function templates. This will require syntax additions for: defining type parameters for a function, explicitly defining type arguments for a function.
Compiler additions will require: generating and type checking function instances, as well as adjustments to type inference for implicit template instantiation.
Serialiser should also include function deduplication so that function instances are only written once if identical.