list.js
function cons (b, value, next) {
  var free = readValue(b, 0) || 8
  updateValue(b, free, value); updateNext(b, free, next)
  updateValue(b, 0, free+8) //update free pointer
  return free
}
function cons (b, value, next) {
  var free = readValue(b, 0) || 8
  updateValue(b, free, value); updateNext(b, free, next)
  updateValue(b, 0, free+8) //update free pointer
  return free
}
allocate a new cons