exception = { } exn_mt = { } setmetatable (exception, exn_mt) function exn_mt.__lt(a,b) return getmetatable(a) == exn_mt and getmetatable(b) == exn_mt and b.super and a <= b.super end function exn_mt.__le (a,b) return a==b or a