-- definitions for Lua 5.1 os library
--# type local tm = {
--# year: integer, month: integer, day: integer,
--# hour: integer?, min: integer?, sec: integer?, isdst: boolean?
--# }
--#
--# assume global `os`:
--# {
--# `clock`: function() --> number;
--# -- TODO it is very hard to recognize '*t'|!'*t' from other string types, ugh
--# `date`: function(format: string?, time: tm?) --> string | {
--# year: integer, month: integer, day: integer,
--# hour: integer, min: integer, sec: integer,
--# wday: integer, yday: integer, isdst: boolean
--# };
--# `difftime`: function(t2: number, t1: number) --> number;
--# `execute`: function(command: string?) --> integer;
--# -- TODO diverging function signature
--# `exit`: function(code: integer?);
--# `getenv`: function(varname: string) --> string;
--# -- TODO sequence conditional union: (true) | (nil, string)
--# -- there is also an undocumented 3rd return type (integer) for errno, omitted here
--# `remove`: function(filename: string) --> (boolean, string);
--# -- TODO sequence conditional union: (true) | (nil, string)
--# `rename`: function(oldname: string, newname: string) --> (boolean, string);
--# `setlocale`: function(locale: string?, category: string?) --> string;
--# `time`: function(table: tm?) --> integer;
--# `tmpname`: function() --> string;
--# ...
--# }