 
 public final class DestroyAddressOp: PrimOp {
   public init(_ value: Value) {
-    super.init(opcode: .destroyAddress, category: .object)
+    super.init(opcode: .destroyAddress,
+               type: BottomType.shared, category: .object)
     self.addOperands([Operand(owner: self, value: value)])
   }
 


public final class CopyAddressOp: PrimOp {
  public init(_ value: Value, to address: Value) {
    super.init(opcode: .copyAddress, category: value.type.category)
    self.addOperands([Operand(owner: self, value: value)])
    self.addOperands([Operand(owner: self, value: address)])
  }

  }
  init(opcode: Code, parent: Continuation) {
    self.parent = parent
    super.init(opcode: opcode, type: BottomType.shared, category: .object)
    // Tie the knot
    self.parent.terminalOp = self
  }
