class Dry::Schema::Trace

def evaluate(*predicates, **opts)

Other tags:
    Api: - private
def evaluate(*predicates, **opts)
  pred_opts = opts.dup
  pred_opts.delete(:type_spec)
  predicates.each do |predicate|
    if predicate.respond_to?(:call)
      append(predicate)
    elsif predicate.is_a?(::Hash)
      evaluate_hash_predicates(predicate)
    elsif predicate.is_a?(::Array)
      append(predicate.map { |pred| __send__(pred) }.reduce(:|))
    else
      append(__send__(predicate))
    end
  end
  evaluate_hash_predicates(pred_opts)
  self
end