portray_class(Description, Term)[private]
Term is a template which may contain object references which need to be portrayed recursively (indicated with the "p/" prefix):
portray_class(constraint(A, B, C), _, constraint(A, B, p/C)).

Which should not touch the first two arguments (A and B), but portrays C recursively.