theory Setup imports Main begin ML_file "../antiquote_setup.ML" ML_file "../more_antiquote.ML" declare [[default_code_width = 74]] syntax "_alpha" :: "type" ("α") "_alpha_ofsort" :: "sort ⇒ type" ("α()::_" [0] 1000) "_beta" :: "type" ("β") "_beta_ofsort" :: "sort ⇒ type" ("β()::_" [0] 1000) parse_ast_translation ‹ let fun alpha_ast_tr [] = Ast.Variable "'a" | alpha_ast_tr asts = raise Ast.AST ("alpha_ast_tr", asts); fun alpha_ofsort_ast_tr [ast] = Ast.Appl [Ast.Constant @{syntax_const "_ofsort"}, Ast.Variable "'a", ast] | alpha_ofsort_ast_tr asts = raise Ast.AST ("alpha_ast_tr", asts); fun beta_ast_tr [] = Ast.Variable "'b" | beta_ast_tr asts = raise Ast.AST ("beta_ast_tr", asts); fun beta_ofsort_ast_tr [ast] = Ast.Appl [Ast.Constant @{syntax_const "_ofsort"}, Ast.Variable "'b", ast] | beta_ofsort_ast_tr asts = raise Ast.AST ("beta_ast_tr", asts); in [(@{syntax_const "_alpha"}, K alpha_ast_tr), (@{syntax_const "_alpha_ofsort"}, K alpha_ofsort_ast_tr), (@{syntax_const "_beta"}, K beta_ast_tr), (@{syntax_const "_beta_ofsort"}, K beta_ofsort_ast_tr)] end › end