--[[
	Defers and orders UI data binding updates.
]]


local RunService = game:GetService("RunService")

local Package = script.Parent.Parent
local None = require(Package.Utility.None)

type Set<T> = {[T]: any}

local Scheduler = {}

local willUpdate = false
local propertyChanges: {[Instance]: {[string]: any}} = {}
local callbacks: Set<() -> ()> = {}
