module T::Props::PrettyPrintable

def pretty_print(pp)

Override the PP gem with something that's similar, but gives us a hook to do redaction and customization
def pretty_print(pp)
  klass = T.unsafe(T.cast(self, Object).class).decorator
  multiline = pp.is_a?(PP)
  pp.group(1, "<#{klass.inspect_class_with_decoration(self)}", ">") do
    klass.all_props.sort.each do |prop|
      pp.breakable
      val = klass.get(self, prop)
      rules = klass.prop_rules(prop)
      pp.text("#{prop}=")
      if (custom_inspect = rules[:inspect])
        inspected = if T::Utils.arity(custom_inspect) == 1
          custom_inspect.call(val)
        else
          custom_inspect.call(val, {multiline: multiline})
        end
        pp.text(inspected.nil? ? "nil" : inspected)
      elsif rules[:sensitivity] && !rules[:sensitivity].empty? && !val.nil?
        pp.text("<REDACTED #{rules[:sensitivity].join(', ')}>")
      else
        val.pretty_print(pp)
      end
    end
    klass.pretty_print_extra(self, pp)
  end
end