}
type text_out_spec = {out : string -> unit;
- path : MathQL.path -> unit;
- query : MathQL.query -> unit;
- result : MathQL.result -> unit
+ path : (string -> unit) -> MathQL.path -> unit;
+ query : (string -> unit) -> string -> MathQL.query -> unit;
+ result : (string -> unit) -> string -> MathQL.result -> unit
}
-val check_arity : MathQL.path -> int -> int -> unit
+type text_in_spec = {result_in : Lexing.lexbuf -> MathQL.result}
-val eval : eval_spec -> text_out_spec ->
+val fun_arity : MathQL.path -> int -> int -> unit
+
+val fun_eval : eval_spec -> text_out_spec -> text_in_spec ->
MathQL.path -> MathQL.path list -> MathQL.query list ->
- MathQL.result
+ MathQL.result
-val txt_out : text_out_spec ->
+val fun_txt_out : text_out_spec ->
MathQL.path -> MathQL.path list -> MathQL.query list -> unit
+val gen_arity : MathQL.path -> int -> unit
+
+val gen_eval : eval_spec ->
+ MathQL.path -> MathQL.query list -> MathQL.query
+
exception ArityError of MathQL.path * arity_t * int
exception NameError of MathQL.path