code: 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
  }
docs: allocate a new cons