%map Any;_write Any;toString Any;createFrom Any;create Any;t Any;set Relation Any Any Any Any;set Relation;get Relation Any Any Any;get Relation;new Relation Any Any Any;new Relation;list Any % module % 7 object_7(_t,_l,_t2,_upvals):-_upvals=[_table],(get_(_table,"imap",T23),_T22 = T23,call_cl(_T22,[_t,_l,_t2])). % 6 object_6(_t,_l,_t2,_upvals):-_upvals=[_table],(get_(_table,"map",T21),_T20 = T21,call_cl(_T20,[_t,_l,_t2])). % 5 object_5(_o,_s,_upvals):-_upvals=[],(true). % 4 object_4(_o,_s,_upvals):-_upvals=[_table,_table],(get_(_table,"remove",T15),_T14 = T15,call_cl(_T14,[_o,"_prototype",_o2]),get_(_table,"toString",T17),_T16 = T17,call_cl(_T16,[_o,_o2])). % 3 object_3(_o,__o,_o2,_upvals):-_upvals=[_set],(call_cl(_set,[_o,"_prototype",__o,_o2])). % 2 object_2(_o,_o2,_upvals):-_upvals=[_set,_nil],(call_cl(_set,[_o,"_prototype",_nil,_o2])). % set object_set(_t,_o,_o2,_t2,_upvals):-_upvals=[],(set_(_t,_o,_o2,_t2)). % get object_get(_t,_o,_o2,_upvals):-_upvals=[],(((get_(_t,_o,_o2))->(true);(((get_(_t,"_prototype",T5),call(object_get(T5,_o,_o2),_upvals))->(true);(throw("cannot access field "+_o+" of object")))))). % new object_new(_o,_o2,__o,_upvals):-_upvals=[_list,_list],(((new(T3),_o = T3,_o_ = _o2);(dif(_o,T4),call_cl(_list,[_o,_l]),call_cl(_list,[_o2,_l2]),append(_l,_l2,_l_),_o_ = _l_))). % main object(X):-creq("table",_table),new(T1),_nil = T1,get_(_table,"toList",T2),_list = T2,_new = clos([_list,_list],object_new),_get = clos([],object_get),_set = clos([],object_set),new(T6),set_(T6,"new",_new,T8),set_(T8,"get",_get,T9),set_(T9,"set",_set,T10),set_(T10,"create",clos([_set,_nil],object_2),T11),set_(T11,"createFrom",clos([_set],object_3),T12),set_(T12,"toString",clos([_table,_table],object_4),T13),set_(T13,"_write",clos([],object_5),T18),set_(T18,"map",clos([_table],object_6),T19),set_(T19,"imap",clos([_table],object_7),T7),_t = T7,X=_t.