src/Pure/item_net.ML
changeset 42810 2425068fe13a
parent 36296 5cc547abd995
child 53941 54874871aa06
equal deleted inserted replaced
42808:30870aee8a3f 42810:2425068fe13a
     8 signature ITEM_NET =
     8 signature ITEM_NET =
     9 sig
     9 sig
    10   type 'a T
    10   type 'a T
    11   val init: ('a * 'a -> bool) -> ('a -> term list) -> 'a T
    11   val init: ('a * 'a -> bool) -> ('a -> term list) -> 'a T
    12   val content: 'a T -> 'a list
    12   val content: 'a T -> 'a list
       
    13   val length: 'a T -> int
    13   val retrieve: 'a T -> term -> 'a list
    14   val retrieve: 'a T -> term -> 'a list
    14   val member: 'a T -> 'a -> bool
    15   val member: 'a T -> 'a -> bool
    15   val merge: 'a T * 'a T -> 'a T
    16   val merge: 'a T * 'a T -> 'a T
    16   val remove: 'a -> 'a T -> 'a T
    17   val remove: 'a -> 'a T -> 'a T
    17   val update: 'a -> 'a T -> 'a T
    18   val update: 'a -> 'a T -> 'a T
    34   Items {eq = eq, index = index, content = content, next = next, net = net};
    35   Items {eq = eq, index = index, content = content, next = next, net = net};
    35 
    36 
    36 fun init eq index = mk_items eq index [] ~1 Net.empty;
    37 fun init eq index = mk_items eq index [] ~1 Net.empty;
    37 
    38 
    38 fun content (Items {content, ...}) = content;
    39 fun content (Items {content, ...}) = content;
       
    40 fun length items = List.length (content items);
    39 fun retrieve (Items {net, ...}) = order_list o Net.unify_term net;
    41 fun retrieve (Items {net, ...}) = order_list o Net.unify_term net;
    40 
    42 
    41 
    43 
    42 (* standard operations *)
    44 (* standard operations *)
    43 
    45