From 70ec5254814f9531e5ca2024465d0e01130306b7 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 21 Feb 2024 09:28:49 -0600 Subject: Initial commit --- types.lua | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 types.lua (limited to 'types.lua') diff --git a/types.lua b/types.lua new file mode 100644 index 0000000..042edce --- /dev/null +++ b/types.lua @@ -0,0 +1,37 @@ +--- lam.types + +local types = {} + +function types.Type(x) + if type(x) == "string" then + -- Symbols are Lua strings + return "Symbol" + elseif type(x) == "number" then + -- Numbers are Lua numbers + return "Number" + elseif x.__type then + return x.__type + elseif type(x) == "table" then + -- Lists are Lua tables (non-adorned) + return "List" + else + return type(x) + end +end + +types.Object = { __type = "Object" } +function types.Object:new(o) + o = o or {} + setmetatable(o, self) + self.__index = self + return o +end + +--- Boxed types + +-- Strings + +-- Lists + +--- +return types -- cgit 1.4.1-21-gabe81