local k=script.Parent.Parent local f=require(k.Types)local u=require(k.Dependencies.captureDependencies)local Z=require(k.Dependencies.initDependency)local W=require(k.Dependencies.useDependency)local w=require(k.Logging.logErrorNonFatal)local Y=require(k.Logging.logWarn)local a=require(k.Utility.isSimilar)local Q=require(k.Utility.needsDestruction)local b={}local N={__index=b}local h={__mode="\107"}
--[[
	Constructs and returns objects which can be used to model derived reactive
	state.
]]

local Package = script.Parent.Parent
local Types = require(Package.Types)
local captureDependencies = require(Package.Dependencies.captureDependencies)
local initDependency = require(Package.Dependencies.initDependency)
local useDependency = require(Package.Dependencies.useDependency)
local logErrorNonFatal = require(Package.Logging.logErrorNonFatal)
local logWarn = require(Package.Logging.logWarn)
local isSimilar = require(Package.Utility.isSimilar)
local needsDestruction = require(Package.Utility.needsDestruction)

local class = {}

local CLASS_METATABLE = { __index = class }
local WEAK_KEYS_METATABLE = { __mode = "k" }
