On 30/05/2009, at 11:28 PM, john skaller wrote:

> For example consider:
>
>       fun f[u,t] (x: &u, y&t)=> y,x;
>
> Felix handles this function now for each type,
> generating duplicate code for each instance.



A sufficient condition for a function to be RT polymorphic is that
all parameters and terms are of a type containing type variables
only directly under a pointer.

For example:

        fun f[u] (x:u) { val y = *x; return 1; }

is not RT polymorphic as written because
the term *x has type u.

RT polymorphism is only useful if the function is
exported. Normal calls would still be inlined and
instantiated for each type actually used.

        
--
john skaller
skal...@users.sourceforge.net





------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com 
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to