function Option.Filter(h,K)if h:IsNone()or not K(h._v)then return Option.None else return h end end

function Option:Filter(predicate)
	if self:IsNone() or not predicate(self._v) then
		return Option.None
	else
		return self
	end
end
