type id = string (* identifier *)
-type comm = string (* comment *)
+type desc = string (* description *)
+
+type kind = Decl (* generic declaration *)
+ | Ax (* axiom *)
+ | Def (* generic definition *)
+ | Th (* theorem *)
type bind = Abst of (id * term) list (* name, domain *)
| Abbr of (id * term) list (* name, bodies *)
| Appl of term list * term (* arguments, function *)
| Bind of bind * term (* binder, scope *)
-type entity = Section of id option (* section: Some id = open, None = close last *)
- | Global of bool * id * comm * term (* global entity: false = decl, true = def *)
+type command = Graph of id (* hierarchy graph: name *)
+ | Sorts of (int option * id) list (* sorts: index, name *)
+ | Section of id option (* section: Some id = open, None = close last *)
+ | Entity of kind * id * desc * term (* entity: class, name, description, contents *)