“…To deal with these problems, in previous work, [12] and [14], we proposed using dynamically typed languages as "assembly languages" to which we translate the source code from F# which is statically typed. In this way, we take advantage of the F# type checker and type inference system, as well as other F# constructs and paradigms such as pattern matching, classes, discriminated unions, namespaces, etc., and we may use the safe imperative features introduced via F# mutable variables.…”