Index: tolbase/lib/toltk/markuphelper.tcl
===================================================================
--- tolbase/lib/toltk/markuphelper.tcl	(revision 699b7d83a464bf99f10ab25030f88e6849c2fab5)
+++ tolbase/lib/toltk/markuphelper.tcl	(revision a5665156951a1b8ac0472d12b636df101fac1740)
@@ -1,7 +1,55 @@
 namespace eval ::MarkupHelper {
-  variable markup
+  variable markup {}
+  variable backup {}
+  variable indent 0
 
   proc Init { } {
     variable markup {}
+    variable restore {}
+    variable indent 0
+  }
+
+  proc SetIndent { n } {
+    variable indent
+
+    if { $n >= 0 && n <= 9 } {
+      set indent n
+    }
+    return $indent
+  }
+
+  proc IncrIndent { d } {
+    variable indent
+
+    set n [ incr indent $d ]
+    if { $indent < 0 } {
+      set indent 0
+    } elseif { $indent > 9 } {
+      set indent 9
+    }
+    return $indent
+  }
+
+  proc Indent { } {
+    variable indent
+    variable markup
+
+    append markup [ string repeat ":" $indent ]
+  }
+
+  proc Backup { } {
+    variable markup
+    variable backup $markup
+
+    return $backup
+  }
+
+  proc Restore { } {
+    variable markup
+    variable backup
+
+    set old $markup
+    set markup $backup
+    return $old
   }
 
@@ -52,4 +100,7 @@
     variable markup
 
+    if { $markup eq "" } {
+      Indent
+    }
     array set opts { -tags {} -br 0 }
     array set opts $args
@@ -102,9 +153,21 @@
   }
 
+  proc CR { } {
+    variable markup
+
+    append markup "\n"
+  }
+
   proc BR { { br 1 } } {
     variable markup
+    variable indent
 
     if { $br } {
-      append markup " <br>"
+      if { $indent } {
+        append markup "\n"
+        Indent
+      } else {
+        append markup " <br>\n"
+      }
     }
   }
@@ -125,4 +188,10 @@
     }
     append markup "#---\n"
+  }
+
+  proc AppendHT { htBuffer } {
+    variable markup
+
+    append markup $htBuffer
   }
 
@@ -131,4 +200,5 @@
     array set opts $args
 
+    set extraHTInfo {}
     foreach {classOf insInfo insCont} {{} {} {}} break
     if { $grammar eq "NameBlock" } {
@@ -144,4 +214,60 @@
         set insCont [Tol_InstanceContent $objAddr]
       }
+      if { $insInfo ne "" } {
+        Backup
+        Init
+        Header2 [ mc "Instance's Info" ]
+        foreach line [ split $insInfo \n ] {
+          set s [ string index $line 0 ]
+          set e [ string index $line end ]
+          if { $s eq "\[" && $e eq "\]" } {
+            Text "[ string range $line 1 end-1 ]:" \
+                -tags {b} -br 1
+          } elseif { $s eq "{" && $e eq "}" } {
+            Text "[ string range $line 1 end-1 ]: " -tags {b}
+          } else {
+            Text \
+                [ Preprocess [ string trimright $line ] ] -br 1
+          }
+        }
+        set extraHTInfo [ Restore ]
+      }
+    } elseif { $grammar eq "Set" } {
+      if { [ info exists opts(-objref) ] } {
+        set objRef $opts(-objref)
+        set classOf [Tol_StructOfFromReference $objRef]
+      } elseif { [ info exists opts(-objaddr) ] } {
+        set objAddr $opts(-objaddr)
+        set classOf [Tol_StructOf $objAddr]
+      }
+      if { $classOf ne "" } {
+        Backup
+        Init
+        BR
+        Text [ mc "Definition:" ] -tags b
+        CR
+        IncrIndent 1
+        BR
+        Text "Struct" -tags b
+        Text " $classOf {"
+        IncrIndent 1
+        BR
+        set fields [ tol::info struct $classOf ]
+        set ll0 [ llength $fields ]
+        set ll1 [ expr { $ll0 -1 } ]
+        for { set fi 0 } { $fi < $ll0 } { incr fi } {
+          foreach {n t} [ lindex $fields $fi ] break
+          Text "$t" -tags b
+          Text " ${n};"
+          if { $fi == $ll1 } {
+            IncrIndent -1
+          }
+          BR
+        }
+        Text "}"
+        IncrIndent -1
+        BR
+        set extraHTInfo [ Restore ]
+      }
     }
     Text "Grammar: " -tags b
@@ -173,20 +299,5 @@
           [ Preprocess [ string trimright $desc ] ]
     }
-    if { $insInfo ne "" } {
-      Header2 "Instance's Info"
-      foreach line [ split $insInfo \n ] {
-        set s [ string index $line 0 ]
-        set e [ string index $line end ]
-        if { $s eq "\[" && $e eq "\]" } {
-          Text "[ string range $line 1 end-1 ]:" \
-              -tags {b} -br 1
-        } elseif { $s eq "{" && $e eq "}" } {
-          Text "[ string range $line 1 end-1 ]: " -tags {b}
-        } else {
-          Text \
-              [ Preprocess [ string trimright $line ] ] -br 1
-        }
-      }
-    }
+    AppendHT $extraHTInfo
     return [ GetText ]
   }
Index: tolbase/lib/toltk/tolbase.tcl
===================================================================
--- tolbase/lib/toltk/tolbase.tcl	(revision 699b7d83a464bf99f10ab25030f88e6849c2fab5)
+++ tolbase/lib/toltk/tolbase.tcl	(revision a5665156951a1b8ac0472d12b636df101fac1740)
@@ -557,5 +557,4 @@
     default {
       foreach {icon grammar name content path desc objRef} $args {}
-
       if { $grammar eq "Anything" } {
         if { [ regexp {/+\sClass\s} $content ] } {
Index: tolbase/lib/toltk/tolinspe.tcl
===================================================================
--- tolbase/lib/toltk/tolinspe.tcl	(revision 699b7d83a464bf99f10ab25030f88e6849c2fab5)
+++ tolbase/lib/toltk/tolinspe.tcl	(revision a5665156951a1b8ac0472d12b636df101fac1740)
@@ -2012,4 +2012,20 @@
   set addr [ ::tol::info address $objReference ]
   return [ Tol_ClassOf $addr ]
+}
+
+proc Tol_StructOf { obj_addr } {
+  set tolcode [ string map [ list %A $obj_addr ]  {
+    Text {
+      Anything obj = GetObjectFromAddress( "%A" );
+      // WriteLn( "Tol_StructOf " << Grammar( obj ) );
+      Text If( Grammar( obj ) == "Set", StructName( obj ), "" )
+    }
+  } ]
+  return [ lindex [ toltcl::eval $tolcode ] 0 ]
+}
+
+proc Tol_StructOfFromReference { objReference } {
+  set addr [ ::tol::info address $objReference ]
+  return [ Tol_StructOf $addr ]
 }
 
