%set Relation Any Any;set Relation;get Relation Any Any;get Relation;new Relation Any;new Relation % % module % set mutable_set(_s,_o2,_upvals):-_upvals=[],(atom_string(_o,_s),nb_setval(_o,_o2)). % get mutable_get(_s,_o,_upvals):-_upvals=[],(atom_string(_o_,_s),nb_getval(_o_,_o)). % new mutable_new(_t,_upvals):-_upvals=[],(true). % main mutable(X):-_new = clos([],mutable_new),_get = clos([],mutable_get),_set = clos([],mutable_set),new(T1),set_(T1,"new",_new,T3),set_(T3,"get",_get,T4),set_(T4,"set",_set,T2),_t = T2,X=_t.