Type-checking for function args using contracts
$ luarocks install contract
This is a small library for LUA that implements a design by contract
approach to writing code. In general, function calls are compared
against a "contract string" at run time that defines what types are
allowed for each function argument.