How about using compile_opt, strictarr? It will eliminate the need for forward_function. I use it all the time and have no worries about IDL mixing functions with arrays. This way, the caller does not need compiled library functions to know they are functions - the syntax of the call implies that they are, and will be available at the execution time. Cheers, Pavel