Declarative Foreign Function Binding Through Generic Programming
Jeremy Yallop, and Anil Madhavapeddy.
Paper in the the proceedings of Functional and Logic Programming (FLOPS).
Foreign function interfaces are typically organised monolithically, tying together the specification of each foreign function with the mechanism used to make the function available in the host language. This leads to inflexible systems, where switching from one binding mechanism to another (say from dynamic binding to static code generation) often requires changing tools and rewriting large portions of code.