
function(queue_pop queue)
  map_tryget("${queue}" front)
  ans(front)
  map_tryget("${queue}" back)
  ans(back)

  if(${front} LESS ${back})
    map_tryget("${queue}" "${front}")
    ans(res)
    math(EXPR front "${front} + 1")
    map_set_hidden("${queue}" "front" "${front}")
    return_ref(res)
  endif()
  return()
 endfunction()
