The SLinks Language
This report presents a prototype interpreter for a simple functional language, called SLinks. The focus of this work is two-fold. One side is the design of a type inference system, based on the Hindley-Milner algorithm, with additional support for record and variant types. This type system is similar to row variable based systems as described by Rémy and Wand. The other side is the support of database querying from within the language. In particular, the focus is on automatic optimisation of SLinks expressions into SQL queries. The resulting prototype, that tested and will be used to test techniques for Philip Wadler’s upcoming Links language, was heavily inspired by Wong’s Kleisi and CPL language. It does however extends it in various ways, in particular as far as record and variant operators are handled in typing and SQL optimisation.