return (
'defined(' . $type_constraint_name . '->_compiled_type_constraint->(' . $value_name . '))'
. "\n\t" . '|| confess "Attribute (' . $attr->name . ') does not pass the type constraint ('
- . $attr->type_constraint->name . ') with " . (defined() ? "' . $value_name . '" : "undef");'
+ . $attr->type_constraint->name
+ . ') with " . (defined(' . $value_name . ') ? (overload::Overloaded(' . $value_name . ') ? overload::StrVal(' . $value_name . ') : ' . $value_name . ') : "undef");'
);
}