1. A computer-implemented method comprising: receiving a specification of a statically typed first interface to a first function, the first interface including a specification of a data type of a parameter of the first function; identifying a second function corresponding to the specification of the statically typed first interface to the first function, the second function written using a dynamically typed language; and generating an implementation of the first function that invokes the second function.