public override object Visit(TypeReferenceExpression typeReferenceExpression, object data)
 {
     return null;
 }
 public override object Visit(TypeReferenceExpression typeReferenceExpression, object data)
 {
     DebugOutput(typeReferenceExpression);
     return GetTypeString(typeReferenceExpression.TypeReference);
 }
 public override object Visit(TypeReferenceExpression typeReferenceExpression, object data)
 {
     return new ReturnType(typeReferenceExpression.TypeReference);
 }
 public override object Visit(TypeReferenceExpression typeReferenceExpression, object data)
 {
     Console.WriteLine(typeReferenceExpression.ToString());
     return typeReferenceExpression.AcceptChildren(this, data);
 }
 public virtual object Visit(TypeReferenceExpression typeReferenceExpression, object data)
 {
     return data;
 }