src/HOL/HOLCF/Tools/cont_consts.ML
changeset 69597 ff784d5a5bfb
parent 56239 17df7145a871
child 74305 28a582aa25dd
equal deleted inserted replaced
69596:c8a2755bf220 69597:ff784d5a5bfb
    27     val extra_parse_rule = Syntax.Parse_Rule (Ast.Constant name2, Ast.Constant name1)
    27     val extra_parse_rule = Syntax.Parse_Rule (Ast.Constant name2, Ast.Constant name1)
    28   in
    28   in
    29     [Syntax.Parse_Print_Rule
    29     [Syntax.Parse_Print_Rule
    30       (Ast.mk_appl (Ast.Constant name2) (map Ast.Variable vnames),
    30       (Ast.mk_appl (Ast.Constant name2) (map Ast.Variable vnames),
    31         fold (fn a => fn t =>
    31         fold (fn a => fn t =>
    32             Ast.mk_appl (Ast.Constant @{const_syntax Rep_cfun}) [t, Ast.Variable a])
    32             Ast.mk_appl (Ast.Constant \<^const_syntax>\<open>Rep_cfun\<close>) [t, Ast.Variable a])
    33           vnames (Ast.Constant name1))] @
    33           vnames (Ast.Constant name1))] @
    34     (case mx of
    34     (case mx of
    35       Infix _ => [extra_parse_rule]
    35       Infix _ => [extra_parse_rule]
    36     | Infixl _ => [extra_parse_rule]
    36     | Infixl _ => [extra_parse_rule]
    37     | Infixr _ => [extra_parse_rule]
    37     | Infixr _ => [extra_parse_rule]
    55     ((c, T, NoSyn),
    55     ((c, T, NoSyn),
    56       (Binding.name c2, change_arrow n T, mx),
    56       (Binding.name c2, change_arrow n T, mx),
    57       trans_rules (syntax c2) (syntax c1) n mx)
    57       trans_rules (syntax c2) (syntax c1) n mx)
    58   end
    58   end
    59 
    59 
    60 fun cfun_arity (Type (n, [_, T])) = if n = @{type_name cfun} then 1 + cfun_arity T else 0
    60 fun cfun_arity (Type (n, [_, T])) = if n = \<^type_name>\<open>cfun\<close> then 1 + cfun_arity T else 0
    61   | cfun_arity _ = 0
    61   | cfun_arity _ = 0
    62 
    62 
    63 fun is_contconst (_, _, NoSyn) = false
    63 fun is_contconst (_, _, NoSyn) = false
    64   | is_contconst (_, _, Binder _) = false    (* FIXME ? *)
    64   | is_contconst (_, _, Binder _) = false    (* FIXME ? *)
    65   | is_contconst (c, T, mx) =
    65   | is_contconst (c, T, mx) =