equal
deleted
inserted
replaced
271 text {* Package setup. *} |
271 text {* Package setup. *} |
272 |
272 |
273 ML_file "Tools/Datatype/datatype_aux.ML" |
273 ML_file "Tools/Datatype/datatype_aux.ML" |
274 ML_file "Tools/Datatype/datatype_prop.ML" |
274 ML_file "Tools/Datatype/datatype_prop.ML" |
275 ML_file "Tools/Datatype/datatype_data.ML" setup Datatype_Data.setup |
275 ML_file "Tools/Datatype/datatype_data.ML" setup Datatype_Data.setup |
|
276 |
|
277 consts |
|
278 case_nil :: "'a \<Rightarrow> 'b" |
|
279 case_cons :: "('a \<Rightarrow> 'b) \<Rightarrow> ('a \<Rightarrow> 'b) \<Rightarrow> 'a \<Rightarrow> 'b" |
|
280 case_elem :: "'a \<Rightarrow> 'b \<Rightarrow> 'a \<Rightarrow> 'b" |
|
281 case_abs :: "('c \<Rightarrow> 'b) \<Rightarrow> 'b" |
276 ML_file "Tools/Datatype/datatype_case.ML" setup Datatype_Case.setup |
282 ML_file "Tools/Datatype/datatype_case.ML" setup Datatype_Case.setup |
|
283 |
277 ML_file "Tools/Datatype/rep_datatype.ML" |
284 ML_file "Tools/Datatype/rep_datatype.ML" |
278 ML_file "Tools/Datatype/datatype_codegen.ML" setup Datatype_Codegen.setup |
285 ML_file "Tools/Datatype/datatype_codegen.ML" setup Datatype_Codegen.setup |
279 ML_file "Tools/Datatype/primrec.ML" |
286 ML_file "Tools/Datatype/primrec.ML" |
280 |
287 |
281 text{* Lambda-abstractions with pattern matching: *} |
288 text{* Lambda-abstractions with pattern matching: *} |
288 parse_translation (advanced) {* |
295 parse_translation (advanced) {* |
289 let |
296 let |
290 fun fun_tr ctxt [cs] = |
297 fun fun_tr ctxt [cs] = |
291 let |
298 let |
292 val x = Syntax.free (fst (Name.variant "x" (Term.declare_term_frees cs Name.context))); |
299 val x = Syntax.free (fst (Name.variant "x" (Term.declare_term_frees cs Name.context))); |
293 val ft = Datatype_Case.case_tr true ctxt [x, cs]; |
300 val ft = Datatype_Case.case_tr ctxt [x, cs]; |
294 in lambda x ft end |
301 in lambda x ft end |
295 in [(@{syntax_const "_lam_pats_syntax"}, fun_tr)] end |
302 in [(@{syntax_const "_lam_pats_syntax"}, fun_tr)] end |
296 *} |
303 *} |
297 |
304 |
298 end |
305 end |