I think this is currently working because the function defined in fil.h is templated, whereas the base C free function is not, and so Cython is parsing this correctly. However, not all versions of Cython can parse this correctly, and cuml currently fails to build on the trunk of Cython repository as a result.
Good catch @vyasr, I think this might be the source of an error to free FIL object that happens when closing a script/notebook sometimes that I've seen in the past
I think this is currently working because the function defined in fil.h is templated, whereas the base C free function is not, and so Cython is parsing this correctly. However, not all versions of Cython can parse this correctly, and cuml currently fails to build on the trunk of Cython repository as a result.