function Option.XOr(F,J)local P=F:IsSome()local T=J:IsSome()if P==T then return Option.None elseif P then return F else return J end end

function Option:XOr(optionB)
	local someOptA = self:IsSome()
	local someOptB = optionB:IsSome()
	if someOptA == someOptB then
		return Option.None
	elseif someOptA then
		return self
	else
		return optionB
	end
end

