|The arguments of 'runtime_compile' are a set of pairs, then a bloc.
Each pair contains first an identifier, then a value.
In the bloc, each identifier found in one of the pairs will be substituted
with the value, then the bloc will be compiled.
A template is generaly two parts:
. a cache (if the template is called twice with the same set of arguments,
then it will be compiled only once)
. a body that will be compiled once for each new set of arguments.
in /pliant/language/type/set/array.pli example,
'pliant array types' relation is handling first part (the cache),
'runtime_compile' is handling the second part (compiling after substituting).
So the difference between a Pliant meta like 'Array' and a C++ template is that
Pliant is lower level (harder to use), and more powerfull (can make
compile time optimizations such ast 'if (Value:flags .and. type_flag_scalar)=0'
still from the array.pli example).