equal
deleted
inserted
replaced
66 -> proto_const_syntax -> Code_Thingol.naming -> const_syntax * Code_Thingol.naming |
66 -> proto_const_syntax -> Code_Thingol.naming -> const_syntax * Code_Thingol.naming |
67 val gen_pr_app: (thm -> var_ctxt -> const * iterm list -> Pretty.T list) |
67 val gen_pr_app: (thm -> var_ctxt -> const * iterm list -> Pretty.T list) |
68 -> (thm -> var_ctxt -> fixity -> iterm -> Pretty.T) |
68 -> (thm -> var_ctxt -> fixity -> iterm -> Pretty.T) |
69 -> (string -> const_syntax option) |
69 -> (string -> const_syntax option) |
70 -> thm -> var_ctxt -> fixity -> const * iterm list -> Pretty.T |
70 -> thm -> var_ctxt -> fixity -> const * iterm list -> Pretty.T |
71 val gen_pr_bind: ((string option * Pretty.T option) * itype -> Pretty.T) |
71 val gen_pr_bind: (Pretty.T option * itype -> Pretty.T) |
72 -> (thm -> var_ctxt -> fixity -> iterm -> Pretty.T) |
72 -> (thm -> var_ctxt -> fixity -> iterm -> Pretty.T) |
73 -> thm -> fixity |
73 -> thm -> fixity |
74 -> (string option * iterm option) * itype -> var_ctxt -> Pretty.T * var_ctxt |
74 -> iterm option * itype -> var_ctxt -> Pretty.T * var_ctxt |
75 |
75 |
76 val mk_name_module: Name.context -> string option -> (string -> string option) |
76 val mk_name_module: Name.context -> string option -> (string -> string option) |
77 -> 'a Graph.T -> string -> string |
77 -> 'a Graph.T -> string -> string |
78 val dest_name: string -> string * string |
78 val dest_name: string -> string * string |
79 end; |
79 end; |
214 then case chop k ts of (ts1, ts2) => |
214 then case chop k ts of (ts1, ts2) => |
215 brackify fxy (pr' APP ts1 :: map (pr_term thm vars BR) ts2) |
215 brackify fxy (pr' APP ts1 :: map (pr_term thm vars BR) ts2) |
216 else pr_term thm vars fxy (Code_Thingol.eta_expand k app) |
216 else pr_term thm vars fxy (Code_Thingol.eta_expand k app) |
217 end; |
217 end; |
218 |
218 |
219 fun gen_pr_bind pr_bind pr_term thm (fxy : fixity) ((v, pat), ty : itype) vars = |
219 fun gen_pr_bind pr_bind pr_term thm (fxy : fixity) (some_pat, ty : itype) vars = |
220 let |
220 let |
221 val vs = case pat |
221 val vs = case some_pat |
222 of SOME pat => Code_Thingol.fold_varnames (insert (op =)) pat [] |
222 of SOME pat => Code_Thingol.fold_varnames (insert (op =)) pat [] |
223 | NONE => []; |
223 | NONE => []; |
224 val vars' = intro_vars (the_list v) vars; |
224 val vars' = intro_vars vs vars; |
225 val vars'' = intro_vars vs vars'; |
225 val some_pat' = Option.map (pr_term thm vars' fxy) some_pat; |
226 val v' = Option.map (lookup_var vars') v; |
226 in (pr_bind (some_pat', ty), vars') end; |
227 val pat' = Option.map (pr_term thm vars'' fxy) pat; |
|
228 in (pr_bind ((v', pat'), ty), vars'') end; |
|
229 |
227 |
230 |
228 |
231 (* mixfix syntax *) |
229 (* mixfix syntax *) |
232 |
230 |
233 datatype 'a mixfix = |
231 datatype 'a mixfix = |