let pop (stack: 'data stack) : 'data =
  if stack.size = 0 then
    raise Not_found;

  let element =
    stack.stack.(stack.size - 1)
  in
    stack.size <- stack.size - 1;
    stack.stack.(stack.size) <- stack.null_element;
    element