anchor.diff:  
       // Logical and Bit-Field Operations
       struct { Ridx rs; Ridx rt; Ridx rd; } AND;
  -    struct { Ridx rs; Ridx rt; Uimm im; } ANDI;
  +    struct { Ridx rs; Ridx rt; Immd im; } ANDI;
       struct { Ridx rs; Ridx rt; Ridx rd; } NOR;
       struct { Ridx rs; Ridx rt; Ridx rd; } OR;
  -    struct { Ridx rs; Ridx rt; Uimm im; } ORI;
  +    struct { Ridx rs; Ridx rt; Immd im; } ORI;
       struct { Ridx rs; Ridx rt; Ridx rd; } XOR;
  -    struct { Ridx rs; Ridx rt; Uimm im; } XORI;
  +    struct { Ridx rs; Ridx rt; Immd im; } XORI;
   
       // Condition Testing and Conditional Move Operations
       struct { Ridx rd; Ridx rs; Ridx rt; } SLT;
  -    struct { Ridx rs; Ridx rt; Simm im; } SLTI;
  -    struct { Ridx rd; Ridx rs; Ridx rt; } SLTIU;
  -    struct { Ridx rd; Ridx rt; Uimm im; } SLTU;
  +    struct { Ridx rs; Ridx rt; Immd im; } SLTI;
  +    struct { Ridx rs; Ridx rt; Immd im; } SLTIU;
  +    struct { Ridx rs; Ridx rt; Ridx rd; } SLTU;
   
       // Multiply and divide operations
       struct { Ridx rs; Ridx rt;          } DIV;
  
positive.code: 
  typedef Bit#(6) Opcode;
  
  
  
negative.code: import FShow::*;
  
  typedef Bit#( 5) Ridx;  // Register index
  typedef Bit#(16) Immd;  // Immediate
  typedef Bit#( 5) Sham;  // Shift ammount
  typedef Bit#(16) Joff;  // Jump offset
  typedef Bit#(26) Jtgt;  // Jump target
  typedef Bit#(16) Moff;  // Memory offset
  
  typedef union tagged {
      // Arithmetic Operations
      struct { Ridx rs; Ridx rt; Ridx rd; } ADD;
      struct { Ridx rs; Ridx rt; Immd im; } ADDI;
      struct { Ridx rs; Ridx rt; Immd im; } ADDIU;
      struct { Ridx rs; Ridx rt; Ridx rd; } ADDU;
      struct {          Ridx rt; Immd im; } LUI;
      struct { Ridx rs; Ridx rt; Ridx rd; } SUB;
      struct { Ridx rs; Ridx rt; Ridx rd; } SUBU;
      
  