958 lines
18 KiB
Lua
958 lines
18 KiB
Lua
local _2afile_2a = "fnl/aniseed/core.fnl"
|
|
local _0_
|
|
do
|
|
local name_0_ = "conjure-macroexpand.aniseed.core"
|
|
local module_0_
|
|
do
|
|
local x_0_ = package.loaded[name_0_]
|
|
if ("table" == type(x_0_)) then
|
|
module_0_ = x_0_
|
|
else
|
|
module_0_ = {}
|
|
end
|
|
end
|
|
module_0_["aniseed/module"] = name_0_
|
|
module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {})
|
|
do end (module_0_)["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {})
|
|
do end (package.loaded)[name_0_] = module_0_
|
|
_0_ = module_0_
|
|
end
|
|
local autoload
|
|
local function _1_(...)
|
|
return (require("conjure-macroexpand.aniseed.autoload")).autoload(...)
|
|
end
|
|
autoload = _1_
|
|
local function _2_(...)
|
|
local ok_3f_0_, val_0_ = nil, nil
|
|
local function _2_()
|
|
return {autoload("conjure-macroexpand.aniseed.view")}
|
|
end
|
|
ok_3f_0_, val_0_ = pcall(_2_)
|
|
if ok_3f_0_ then
|
|
_0_["aniseed/local-fns"] = {autoload = {view = "conjure-macroexpand.aniseed.view"}}
|
|
return val_0_
|
|
else
|
|
return print(val_0_)
|
|
end
|
|
end
|
|
local _local_0_ = _2_(...)
|
|
local view = _local_0_[1]
|
|
local _2amodule_2a = _0_
|
|
local _2amodule_name_2a = "conjure-macroexpand.aniseed.core"
|
|
do local _ = ({nil, _0_, nil, {{}, nil, nil, nil}})[2] end
|
|
math.randomseed(os.time())
|
|
local rand
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function rand0(n)
|
|
return (math.random() * (n or 1))
|
|
end
|
|
v_0_0 = rand0
|
|
_0_["rand"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["rand"] = v_0_
|
|
rand = v_0_
|
|
end
|
|
local string_3f
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function string_3f0(x)
|
|
return ("string" == type(x))
|
|
end
|
|
v_0_0 = string_3f0
|
|
_0_["string?"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["string?"] = v_0_
|
|
string_3f = v_0_
|
|
end
|
|
local nil_3f
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function nil_3f0(x)
|
|
return (nil == x)
|
|
end
|
|
v_0_0 = nil_3f0
|
|
_0_["nil?"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["nil?"] = v_0_
|
|
nil_3f = v_0_
|
|
end
|
|
local table_3f
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function table_3f0(x)
|
|
return ("table" == type(x))
|
|
end
|
|
v_0_0 = table_3f0
|
|
_0_["table?"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["table?"] = v_0_
|
|
table_3f = v_0_
|
|
end
|
|
local count
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function count0(xs)
|
|
if table_3f(xs) then
|
|
return table.maxn(xs)
|
|
elseif not xs then
|
|
return 0
|
|
else
|
|
return #xs
|
|
end
|
|
end
|
|
v_0_0 = count0
|
|
_0_["count"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["count"] = v_0_
|
|
count = v_0_
|
|
end
|
|
local empty_3f
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function empty_3f0(xs)
|
|
return (0 == count(xs))
|
|
end
|
|
v_0_0 = empty_3f0
|
|
_0_["empty?"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["empty?"] = v_0_
|
|
empty_3f = v_0_
|
|
end
|
|
local first
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function first0(xs)
|
|
if xs then
|
|
return xs[1]
|
|
end
|
|
end
|
|
v_0_0 = first0
|
|
_0_["first"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["first"] = v_0_
|
|
first = v_0_
|
|
end
|
|
local second
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function second0(xs)
|
|
if xs then
|
|
return xs[2]
|
|
end
|
|
end
|
|
v_0_0 = second0
|
|
_0_["second"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["second"] = v_0_
|
|
second = v_0_
|
|
end
|
|
local last
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function last0(xs)
|
|
if xs then
|
|
return xs[count(xs)]
|
|
end
|
|
end
|
|
v_0_0 = last0
|
|
_0_["last"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["last"] = v_0_
|
|
last = v_0_
|
|
end
|
|
local inc
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function inc0(n)
|
|
return (n + 1)
|
|
end
|
|
v_0_0 = inc0
|
|
_0_["inc"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["inc"] = v_0_
|
|
inc = v_0_
|
|
end
|
|
local dec
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function dec0(n)
|
|
return (n - 1)
|
|
end
|
|
v_0_0 = dec0
|
|
_0_["dec"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["dec"] = v_0_
|
|
dec = v_0_
|
|
end
|
|
local even_3f
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function even_3f0(n)
|
|
return ((n % 2) == 0)
|
|
end
|
|
v_0_0 = even_3f0
|
|
_0_["even?"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["even?"] = v_0_
|
|
even_3f = v_0_
|
|
end
|
|
local odd_3f
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function odd_3f0(n)
|
|
return not even_3f(n)
|
|
end
|
|
v_0_0 = odd_3f0
|
|
_0_["odd?"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["odd?"] = v_0_
|
|
odd_3f = v_0_
|
|
end
|
|
local keys
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function keys0(t)
|
|
local result = {}
|
|
if t then
|
|
for k, _ in pairs(t) do
|
|
table.insert(result, k)
|
|
end
|
|
end
|
|
return result
|
|
end
|
|
v_0_0 = keys0
|
|
_0_["keys"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["keys"] = v_0_
|
|
keys = v_0_
|
|
end
|
|
local vals
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function vals0(t)
|
|
local result = {}
|
|
if t then
|
|
for _, v in pairs(t) do
|
|
table.insert(result, v)
|
|
end
|
|
end
|
|
return result
|
|
end
|
|
v_0_0 = vals0
|
|
_0_["vals"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["vals"] = v_0_
|
|
vals = v_0_
|
|
end
|
|
local kv_pairs
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function kv_pairs0(t)
|
|
local result = {}
|
|
if t then
|
|
for k, v in pairs(t) do
|
|
table.insert(result, {k, v})
|
|
end
|
|
end
|
|
return result
|
|
end
|
|
v_0_0 = kv_pairs0
|
|
_0_["kv-pairs"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["kv-pairs"] = v_0_
|
|
kv_pairs = v_0_
|
|
end
|
|
local run_21
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function run_210(f, xs)
|
|
if xs then
|
|
local nxs = count(xs)
|
|
if (nxs > 0) then
|
|
for i = 1, nxs do
|
|
f(xs[i])
|
|
end
|
|
return nil
|
|
end
|
|
end
|
|
end
|
|
v_0_0 = run_210
|
|
_0_["run!"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["run!"] = v_0_
|
|
run_21 = v_0_
|
|
end
|
|
local filter
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function filter0(f, xs)
|
|
local result = {}
|
|
local function _3_(x)
|
|
if f(x) then
|
|
return table.insert(result, x)
|
|
end
|
|
end
|
|
run_21(_3_, xs)
|
|
return result
|
|
end
|
|
v_0_0 = filter0
|
|
_0_["filter"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["filter"] = v_0_
|
|
filter = v_0_
|
|
end
|
|
local map
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function map0(f, xs)
|
|
local result = {}
|
|
local function _3_(x)
|
|
local mapped = f(x)
|
|
local function _4_()
|
|
if (0 == select("#", mapped)) then
|
|
return nil
|
|
else
|
|
return mapped
|
|
end
|
|
end
|
|
return table.insert(result, _4_())
|
|
end
|
|
run_21(_3_, xs)
|
|
return result
|
|
end
|
|
v_0_0 = map0
|
|
_0_["map"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["map"] = v_0_
|
|
map = v_0_
|
|
end
|
|
local map_indexed
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function map_indexed0(f, xs)
|
|
return map(f, kv_pairs(xs))
|
|
end
|
|
v_0_0 = map_indexed0
|
|
_0_["map-indexed"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["map-indexed"] = v_0_
|
|
map_indexed = v_0_
|
|
end
|
|
local identity
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function identity0(x)
|
|
return x
|
|
end
|
|
v_0_0 = identity0
|
|
_0_["identity"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["identity"] = v_0_
|
|
identity = v_0_
|
|
end
|
|
local reduce
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function reduce0(f, init, xs)
|
|
local result = init
|
|
local function _3_(x)
|
|
result = f(result, x)
|
|
return nil
|
|
end
|
|
run_21(_3_, xs)
|
|
return result
|
|
end
|
|
v_0_0 = reduce0
|
|
_0_["reduce"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["reduce"] = v_0_
|
|
reduce = v_0_
|
|
end
|
|
local some
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function some0(f, xs)
|
|
local result = nil
|
|
local n = 1
|
|
while (nil_3f(result) and (n <= count(xs))) do
|
|
local candidate = f(xs[n])
|
|
if candidate then
|
|
result = candidate
|
|
end
|
|
n = inc(n)
|
|
end
|
|
return result
|
|
end
|
|
v_0_0 = some0
|
|
_0_["some"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["some"] = v_0_
|
|
some = v_0_
|
|
end
|
|
local butlast
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function butlast0(xs)
|
|
local total = count(xs)
|
|
local function _4_(_3_)
|
|
local _arg_0_ = _3_
|
|
local n = _arg_0_[1]
|
|
local v = _arg_0_[2]
|
|
return (n ~= total)
|
|
end
|
|
return map(second, filter(_4_, kv_pairs(xs)))
|
|
end
|
|
v_0_0 = butlast0
|
|
_0_["butlast"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["butlast"] = v_0_
|
|
butlast = v_0_
|
|
end
|
|
local rest
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function rest0(xs)
|
|
local function _4_(_3_)
|
|
local _arg_0_ = _3_
|
|
local n = _arg_0_[1]
|
|
local v = _arg_0_[2]
|
|
return (n ~= 1)
|
|
end
|
|
return map(second, filter(_4_, kv_pairs(xs)))
|
|
end
|
|
v_0_0 = rest0
|
|
_0_["rest"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["rest"] = v_0_
|
|
rest = v_0_
|
|
end
|
|
local concat
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function concat0(...)
|
|
local result = {}
|
|
local function _3_(xs)
|
|
local function _4_(x)
|
|
return table.insert(result, x)
|
|
end
|
|
return run_21(_4_, xs)
|
|
end
|
|
run_21(_3_, {...})
|
|
return result
|
|
end
|
|
v_0_0 = concat0
|
|
_0_["concat"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["concat"] = v_0_
|
|
concat = v_0_
|
|
end
|
|
local mapcat
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function mapcat0(f, xs)
|
|
return concat(unpack(map(f, xs)))
|
|
end
|
|
v_0_0 = mapcat0
|
|
_0_["mapcat"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["mapcat"] = v_0_
|
|
mapcat = v_0_
|
|
end
|
|
local pr_str
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function pr_str0(...)
|
|
local s
|
|
local function _3_(x)
|
|
return view.serialise(x, {["one-line"] = true})
|
|
end
|
|
s = table.concat(map(_3_, {...}), " ")
|
|
if (nil_3f(s) or ("" == s)) then
|
|
return "nil"
|
|
else
|
|
return s
|
|
end
|
|
end
|
|
v_0_0 = pr_str0
|
|
_0_["pr-str"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["pr-str"] = v_0_
|
|
pr_str = v_0_
|
|
end
|
|
local str
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function str0(...)
|
|
local function _3_(acc, s)
|
|
return (acc .. s)
|
|
end
|
|
local function _4_(s)
|
|
if string_3f(s) then
|
|
return s
|
|
else
|
|
return pr_str(s)
|
|
end
|
|
end
|
|
return reduce(_3_, "", map(_4_, {...}))
|
|
end
|
|
v_0_0 = str0
|
|
_0_["str"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["str"] = v_0_
|
|
str = v_0_
|
|
end
|
|
local println
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function println0(...)
|
|
local function _3_(acc, s)
|
|
return (acc .. s)
|
|
end
|
|
local function _5_(_4_)
|
|
local _arg_0_ = _4_
|
|
local i = _arg_0_[1]
|
|
local s = _arg_0_[2]
|
|
if (1 == i) then
|
|
return s
|
|
else
|
|
return (" " .. s)
|
|
end
|
|
end
|
|
local function _6_(s)
|
|
if string_3f(s) then
|
|
return s
|
|
else
|
|
return pr_str(s)
|
|
end
|
|
end
|
|
return print(reduce(_3_, "", map_indexed(_5_, map(_6_, {...}))))
|
|
end
|
|
v_0_0 = println0
|
|
_0_["println"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["println"] = v_0_
|
|
println = v_0_
|
|
end
|
|
local pr
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function pr0(...)
|
|
return println(pr_str(...))
|
|
end
|
|
v_0_0 = pr0
|
|
_0_["pr"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["pr"] = v_0_
|
|
pr = v_0_
|
|
end
|
|
local slurp
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function slurp0(path, silent_3f)
|
|
local _3_, _4_ = io.open(path, "r")
|
|
if ((_3_ == nil) and (nil ~= _4_)) then
|
|
local msg = _4_
|
|
return nil
|
|
elseif (nil ~= _3_) then
|
|
local f = _3_
|
|
local content = f:read("*all")
|
|
f:close()
|
|
return content
|
|
end
|
|
end
|
|
v_0_0 = slurp0
|
|
_0_["slurp"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["slurp"] = v_0_
|
|
slurp = v_0_
|
|
end
|
|
local spit
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function spit0(path, content)
|
|
local _3_, _4_ = io.open(path, "w")
|
|
if ((_3_ == nil) and (nil ~= _4_)) then
|
|
local msg = _4_
|
|
return error(("Could not open file: " .. msg))
|
|
elseif (nil ~= _3_) then
|
|
local f = _3_
|
|
f:write(content)
|
|
f:close()
|
|
return nil
|
|
end
|
|
end
|
|
v_0_0 = spit0
|
|
_0_["spit"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["spit"] = v_0_
|
|
spit = v_0_
|
|
end
|
|
local merge_21
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function merge_210(base, ...)
|
|
local function _3_(acc, m)
|
|
if m then
|
|
for k, v in pairs(m) do
|
|
acc[k] = v
|
|
end
|
|
end
|
|
return acc
|
|
end
|
|
return reduce(_3_, (base or {}), {...})
|
|
end
|
|
v_0_0 = merge_210
|
|
_0_["merge!"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["merge!"] = v_0_
|
|
merge_21 = v_0_
|
|
end
|
|
local merge
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function merge0(...)
|
|
return merge_21({}, ...)
|
|
end
|
|
v_0_0 = merge0
|
|
_0_["merge"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["merge"] = v_0_
|
|
merge = v_0_
|
|
end
|
|
local select_keys
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function select_keys0(t, ks)
|
|
if (t and ks) then
|
|
local function _3_(acc, k)
|
|
if k then
|
|
acc[k] = t[k]
|
|
end
|
|
return acc
|
|
end
|
|
return reduce(_3_, {}, ks)
|
|
else
|
|
return {}
|
|
end
|
|
end
|
|
v_0_0 = select_keys0
|
|
_0_["select-keys"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["select-keys"] = v_0_
|
|
select_keys = v_0_
|
|
end
|
|
local get
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function get0(t, k, d)
|
|
local res
|
|
if table_3f(t) then
|
|
local val = t[k]
|
|
if not nil_3f(val) then
|
|
res = val
|
|
else
|
|
res = nil
|
|
end
|
|
else
|
|
res = nil
|
|
end
|
|
if nil_3f(res) then
|
|
return d
|
|
else
|
|
return res
|
|
end
|
|
end
|
|
v_0_0 = get0
|
|
_0_["get"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["get"] = v_0_
|
|
get = v_0_
|
|
end
|
|
local get_in
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function get_in0(t, ks, d)
|
|
local res
|
|
local function _3_(acc, k)
|
|
if table_3f(acc) then
|
|
return get(acc, k)
|
|
end
|
|
end
|
|
res = reduce(_3_, t, ks)
|
|
if nil_3f(res) then
|
|
return d
|
|
else
|
|
return res
|
|
end
|
|
end
|
|
v_0_0 = get_in0
|
|
_0_["get-in"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["get-in"] = v_0_
|
|
get_in = v_0_
|
|
end
|
|
local assoc
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function assoc0(t, ...)
|
|
local _let_0_ = {...}
|
|
local k = _let_0_[1]
|
|
local v = _let_0_[2]
|
|
local xs = {(table.unpack or unpack)(_let_0_, 3)}
|
|
local rem = count(xs)
|
|
local t0 = (t or {})
|
|
if odd_3f(rem) then
|
|
error("assoc expects even number of arguments after table, found odd number")
|
|
end
|
|
if not nil_3f(k) then
|
|
t0[k] = v
|
|
end
|
|
if (rem > 0) then
|
|
assoc0(t0, unpack(xs))
|
|
end
|
|
return t0
|
|
end
|
|
v_0_0 = assoc0
|
|
_0_["assoc"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["assoc"] = v_0_
|
|
assoc = v_0_
|
|
end
|
|
local assoc_in
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function assoc_in0(t, ks, v)
|
|
local path = butlast(ks)
|
|
local final = last(ks)
|
|
local t0 = (t or {})
|
|
local function _3_(acc, k)
|
|
local step = get(acc, k)
|
|
if nil_3f(step) then
|
|
return get(assoc(acc, k, {}), k)
|
|
else
|
|
return step
|
|
end
|
|
end
|
|
assoc(reduce(_3_, t0, path), final, v)
|
|
return t0
|
|
end
|
|
v_0_0 = assoc_in0
|
|
_0_["assoc-in"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["assoc-in"] = v_0_
|
|
assoc_in = v_0_
|
|
end
|
|
local update
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function update0(t, k, f)
|
|
return assoc(t, k, f(get(t, k)))
|
|
end
|
|
v_0_0 = update0
|
|
_0_["update"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["update"] = v_0_
|
|
update = v_0_
|
|
end
|
|
local update_in
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function update_in0(t, ks, f)
|
|
return assoc_in(t, ks, f(get_in(t, ks)))
|
|
end
|
|
v_0_0 = update_in0
|
|
_0_["update-in"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["update-in"] = v_0_
|
|
update_in = v_0_
|
|
end
|
|
local constantly
|
|
do
|
|
local v_0_
|
|
do
|
|
local v_0_0
|
|
local function constantly0(v)
|
|
local function _3_()
|
|
return v
|
|
end
|
|
return _3_
|
|
end
|
|
v_0_0 = constantly0
|
|
_0_["constantly"] = v_0_0
|
|
v_0_ = v_0_0
|
|
end
|
|
local t_0_ = (_0_)["aniseed/locals"]
|
|
t_0_["constantly"] = v_0_
|
|
constantly = v_0_
|
|
end
|
|
return nil
|