(* Not the best idea to use a string directly, an abstract type for identifiers would be better *)
| Assume of loc * string * nterm * nterm option (* loc, identifier, type, eqty *)
| Suppose of loc * nterm *string * nterm option (* loc, assumption, identifier, eqass *)
(* Not the best idea to use a string directly, an abstract type for identifiers would be better *)
| Assume of loc * string * nterm * nterm option (* loc, identifier, type, eqty *)
| Suppose of loc * nterm *string * nterm option (* loc, assumption, identifier, eqass *)