type names = name list
-type attr = Name of name (* name *)
- | Apix of int (* additional position index *)
- | Mark of int (* node marker *)
- | Meta of string (* metaliguistic annotation *)
- | Priv (* private global definition *)
+type meta = Main (* main object *)
+ | InProp (* inhabitant of a proposition *)
+ | Progress (* uncompleted object *)
+ | Private (* private global definition *)
+
+type attr = Name of name (* name *)
+ | Apix of int (* additional position index *)
+ | Mark of int (* node marker *)
+ | Meta of meta list (* metaliguistic classification *)
+ | Info of (string * string) (* metaliguistic annotation: language (defaults to "en-US"), text *)
type attrs = attr list (* attributes *)
| _ :: tl -> mark err f tl
| [] -> err ()
-let rec priv err f = function
- | Priv :: _ -> f ()
- | _ :: tl -> priv err f tl
- | [] -> err ()
-
let rec meta err f = function
- | Meta s :: _ -> f s
- | _ :: tl -> meta err f tl
- | [] -> err ()
+ | Meta ms :: _ -> f ms
+ | _ :: tl -> meta err f tl
+ | [] -> err ()
+
+let rec info err f = function
+ | Info (lg, tx) :: _ -> f lg tx
+ | _ :: tl -> info err f tl
+ | [] -> err ()
let resolve err f name a =
let rec aux i = function