src/Pure/theory_data.ML
changeset 6546 995a66249a9b
parent 5642 1b3e48bdbb93
child 7348 3e91b07223ad
equal deleted inserted replaced
6545:a8a235a8a4a3 6546:995a66249a9b
     8 signature THEORY_DATA_ARGS =
     8 signature THEORY_DATA_ARGS =
     9 sig
     9 sig
    10   val name: string
    10   val name: string
    11   type T
    11   type T
    12   val empty: T
    12   val empty: T
       
    13   val copy: T -> T
    13   val prep_ext: T -> T
    14   val prep_ext: T -> T
    14   val merge: T * T -> T
    15   val merge: T * T -> T
    15   val print: Sign.sg -> T -> unit
    16   val print: Sign.sg -> T -> unit
    16 end;
    17 end;
    17 
    18 
    35 exception Data of T;
    36 exception Data of T;
    36 
    37 
    37 val init =
    38 val init =
    38   Theory.init_data kind
    39   Theory.init_data kind
    39     (Data Args.empty,
    40     (Data Args.empty,
       
    41       fn (Data x) => Data (Args.copy x),
    40       fn (Data x) => Data (Args.prep_ext x),
    42       fn (Data x) => Data (Args.prep_ext x),
    41       fn (Data x1, Data x2) => Data (Args.merge (x1, x2)),
    43       fn (Data x1, Data x2) => Data (Args.merge (x1, x2)),
    42       fn sg => fn (Data x) => Args.print sg x);
    44       fn sg => fn (Data x) => Args.print sg x);
    43 
    45 
    44 val print = Theory.print_data kind;
    46 val print = Theory.print_data kind;