class Contracts::SetOf
def initialize(contract)
def initialize(contract) @contract = contract.is_a?(String) ? IsA[contract] : contract end
def test_data
def test_data Set.new([], [Testable.test_data(@contract)], [Testable.test_data(@contract), Testable.test_data(@contract)]) end
def testable?
def testable? Testable.testable? @contract end
def to_s
def to_s "a set of #{@contract}" end
def valid?(vals)
def valid?(vals) return false unless vals.is_a?(Set) vals.all? do |val| res, _ = Contract.valid?(val, @contract) res end end