function Binding.create(u)local k={[Type]=Type.Binding,[InternalData]={value=u;changeSignal=createSignal(),subscriberCount=0,valueTransform=identity,upstreamBinding=nil,upstreamDisconnect=nil}}setmetatable(k,bindingPrototype)local F=function(u)Binding.update(k,u)end return k,F end return Binding

function Binding.create(initialValue)
	local binding = {
		[Type] = Type.Binding,

		[InternalData] = {
			value = initialValue,
			changeSignal = createSignal(),
			subscriberCount = 0,

			valueTransform = identity,
			upstreamBinding = nil,
			upstreamDisconnect = nil,
		},
	}

	setmetatable(binding, bindingPrototype)

	local setter = function(newValue)
		Binding.update(binding, newValue)
	end

	return binding, setter
end

return Binding
