equal
deleted
inserted
replaced
673 Scan.optional (@{keyword "("} |-- Parse.list1 ((@{keyword "no_dests"} >> K (true, false)) || |
673 Scan.optional (@{keyword "("} |-- Parse.list1 ((@{keyword "no_dests"} >> K (true, false)) || |
674 (@{keyword "rep_compat"} >> K (false, true))) --| @{keyword ")"} |
674 (@{keyword "rep_compat"} >> K (false, true))) --| @{keyword ")"} |
675 >> (pairself (exists I) o split_list)) (false, false); |
675 >> (pairself (exists I) o split_list)) (false, false); |
676 |
676 |
677 val _ = |
677 val _ = |
678 Outer_Syntax.local_theory_to_proof @{command_spec "wrap_data"} "wraps an existing datatype" |
678 Outer_Syntax.local_theory_to_proof @{command_spec "wrap_data"} "wrap an existing datatype" |
679 ((parse_wrap_options -- (@{keyword "["} |-- Parse.list Parse.term --| @{keyword "]"}) -- |
679 ((parse_wrap_options -- (@{keyword "["} |-- Parse.list Parse.term --| @{keyword "]"}) -- |
680 Parse.term -- Scan.optional (parse_bindings -- Scan.optional (parse_bindingss -- |
680 Parse.term -- Scan.optional (parse_bindings -- Scan.optional (parse_bindingss -- |
681 Scan.optional parse_bound_termss []) ([], [])) ([], ([], []))) |
681 Scan.optional parse_bound_termss []) ([], [])) ([], ([], []))) |
682 >> wrap_datatype_cmd); |
682 >> wrap_datatype_cmd); |
683 |
683 |