Did you know ... Search Documentation:
Pack hash_consing -- test/hash_consing_snapshots/layers.txt

predicate(slot_made/2) slot_made(A, B) :- hash_consing:represented(slot(A), B). predicate(slot_index/2) slot_index(A, B) :- hash_consing:represented(slot(B), A). predicate(slot_read/2) slot_read(A, B) :- stored_layer(A, slot(B)). predicate(linked_index/2) linked_index(A, B) :- ( ground([B]) -> hash_consing:intern(slot(B), '__hash_consed_slot/1'(C)), stored_layer(A, link('__hash_consed_slot/1'(C), _)) ; ( ground(slot(B)) -> hash_consing:intern(slot(B), '__hash_consed_slot/1'(C)) ; true ), stored_layer(A, link('__hash_consed_slot/1'(C), _)), hash_consing:intern(slot(B), '__hash_consed_slot/1'(C)) ). predicate(marked_name/2) marked_name(marked(A), A). predicate(is_slot/1) is_slot('__hash_consed_slot/1'(A)) :- ( nonvar(A) -> true ; hash_consing:intern(slot(_), '__hash_consed_slot/1'(A)) ).