{ stknew() : [0,[]];
stkpsh(el,st): {
st[1]:= st[1]+1;
st[2]:=[el,st[2]] };
stkpop(st) :
if(st[1]=0,
error("pop from empty stack"),
{ st[1]:= st[1]-1;
tmp:st[2];
res:tmp[1];
st[2]:=tmp[2];
res});
stktop(st) :
if(st[1]=0,
error("top from empty stack"),
{ tmp:st[2];tmp[1]});
stkemp(st) : st[1]=0
}