You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ats-lan...@googlegroups.com
FYI.
A function template is not compiled; only its instances are compiled.
A polymorphic function is compiled once; each call to the polymorphic function is linked to the object code generated from compiling the function.
For instance,
fun{a:t@ype} foo (x: a) = x // this is a function template fun foo2 {a:type} (x: a) = x // this is a polymorphic function
Often people write the following kind of function:
fun foo3 {a:t@ype} (x: a) = x // a polymorphic function that cannot be compiled.
The problem with foo3 is that it cannot be properly compiled to object code as the size of the type [a] is unknown at compile-time. When in confusion, please ask the simple question: Can such a function be implemented in C? If the answer is negative, then the function probably needs to be turned into a function template.