     case .bytes(let bvector):
       return bvector.hashValue &* 31 &+ 15
     case .pair(let car, let cdr):
-      return ((eqHash(car) &* 31) &+ eqHash(cdr)) &* 31 + 16
+      return ((eqHash(car) &* 31) &+ eqHash(cdr)) &* 31 &+ 16
     case .box(let cell):
       return cell.hashValue &* 31 &+ 17
     case .mpair(let tuple):

    case .bytes(let bvector):
      return bvector.hashValue &* 31 &+ 15
    case .pair(let car, let cdr):
      return ((eqvHash(car) &* 31) &+ eqvHash(cdr)) &* 31 + 16
    case .box(let cell):
      return cell.hashValue &* 31 &+ 17
    case .mpair(let tuple):

    case .table(let map):
      return map.hashValue &* 31 &+ 21
    case .promise(let promise):
      return promise.hashValue &* 31 &+ 22
    case .values(let expr):
      return eqvHash(expr) &* 31 &+ 23
    case .procedure(let proc):
      return proc.hashValue &* 31 &+ 24
    case .special(let special):
      return special.hashValue &* 31 &+ 25
    case .env(let environment):
      return environment.hashValue &* 31 &+ 26
    case .port(let port):
      return port.hashValue &* 31 &+ 27
    case .error(let err):
      return err.hashValue &* 31 &+ 28
  }
}

