+ | TNested of pred * typ
+ (* Allow nested configuration, in the form of a function from an action
+ * satisfying the first predicate to an action satisfying the second and
+ * with the same environment variable IO behavior. *)
+
+ | TError
+ (* Marker that something already went wrong, so don't generate further
+ * error messages. *)
+ | TUnif of string * typ option ref
+ (* Unification variable to be determined during type-checking *)