---@meta lyaml.functional

--------------------------------------------------------------------------------
-- LYAML functional tool module
--------------------------------------------------------------------------------

---@class lyaml_null*
local lyaml_null = {}

---@alias lyaml_callable fun(...:any):any

---@class lyaml_functional*
---@field NULL lyaml_null* YAML null Sentinel value
---@type lyaml_functional*
local M = {}

--- Combine a set of functions that return the first non-nil result.
---@param fns lyaml_callable[] function list
---@return lyaml_callable fn The combined function
function M.anyof(fns) end

--- Returns all parameters unchanged.
---@param ... any
---@return any ...
function M.id(...) end

--- Determine whether the value is callable.
---@param x any
---@return lyaml_callable? fn callable function
function M.iscallable(x) end

--- Determine whether the value is `lyaml.null`.
---@param x any
---@return boolean ok Whether it is a null sentinel value
function M.isnull(x) end

return M
