 
 public final class AllocBoxOp: PrimOp {
   public init(_ type: Value) {
-    super.init(opcode: .allocBox, category: .object)
+    super.init(opcode: .allocBox, type: BoxType(type.name), category: .object)
     self.addOperands([Operand(owner: self, value: type)])
   }
 


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



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