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) 
  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
allocate a new cons