Structure AncestryData


Source File Identifier index Theory binding index

signature AncestryData =
sig
  type ('delta,'value) adata_info = {
    tag : string, initial_values : (string * 'value) list,
    apply_delta : 'delta -> 'value -> 'value
  }

  type ('delta,'value) fullresult =
       { merge : string list -> 'value option,
         DB : {thyname : string} -> 'value option,
         get_deltas : {thyname : string} -> 'delta list,
         record_delta : 'delta -> unit,
         parents : {thyname : string} -> string list,
         set_parents : string list -> 'value option,
         get_global_value : unit -> 'value,
         update_global_value : ('value -> 'value) -> unit }

  (* doesn't lock, or in any way exclude others from seeing the adjusted
     value while this code is executing *)
  val with_temp_value : ('delta,'value)fullresult -> 'value ->
                        ('a -> 'b) -> ('a -> 'b)


  val make : { info : ('delta, 'value) adata_info,
               get_deltas : {thyname:string} -> 'delta list,
               delta_side_effects : 'delta -> unit } ->
             { merge : string list -> 'value option,
               DB : {thyname : string} -> 'value option,
               parents : {thyname : string} -> string list,
               set_parents : string list -> 'value option
             }

  val fullmake : { adinfo : ('delta, 'value) adata_info,
                   uptodate_delta : 'delta -> bool,
                   sexps : { dec : 'delta ThyDataSexp.dec,
                             enc : 'delta ThyDataSexp.enc },
                   globinfo : {
                     apply_to_global : 'delta -> 'value -> 'value,
                     thy_finaliser : ({thyname:string} -> 'delta list ->
                                      'value -> 'value) option,
                     initial_value : 'value}
                 } ->
                 ('delta,'value) fullresult

end


Source File Identifier index Theory binding index

HOL 4, Trindemossen-1