#! lua
-- prelude
(getmetatable "").__call=string.format
obey$dir= \ ( s ) => (arg[0]):gsub ("%.[^%.]+$", "") .. (s or "") end
local $ in imath
local fmt = "$%d"
for i = 0,9 do
    _G[fmt (i)] = $ (i)
end -- for
(getmetatable ($0)).__type = "integer"
local oldtype = type
type = \ (x)
  local t = oldtype (x)
  if t == "userdata" then
    local m = getmetatable (x)
    local v = m and m.__type
    => v or t
  else => t end -- if
end -- function

