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

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

          res = res &* 31 &+ hash(expr)
        }
        visited.remove(vector)
        return res &* 31 &+ 19
      case .record(let record):
        if alreadyVisited(record) {
          return 0
