anchor.diff:    let int1 = constant 1
   
     module Array =
  -    let length target = Et.ArrayLength(target)
  +    let length target = Et.ArrayLength(target) :> Et
       let index target (index:Et) = Et.ArrayIndex(target, index) :> Et
  -    let access target (exprs:Et seq) = Et.ArrayAccess(target, exprs)
  +    let access target (exprs:Et seq) = Et.ArrayAccess(target, exprs) :> Et
   
       let new' typ (bounds:Et seq) = Et.NewArrayBounds(typ, bounds) :> Et
       let newT<'a> = new' typeof<'a>
  
positive.code:     let ltEq left right = Et.LessThanOrEqual(left, right) :> Et
  
      let gt left right = Et.GreaterThan(left, right) :> Et
      let gtEq left right = Et.GreaterThanOrEqual(left, right) :> Et
  
      let not target = Et.OnesComplement target
negative.code:     let catchT<'a> = catch typeof<'a>
  
    module Bit =
      let and' left right = Et.And(left, right) :> Et
      let andAsn left right = Et.AndAssign(left, right) :> Et
  
      let or' left right = Et.Or(left, right) :> Et
      let orAsn left right = Et.OrAssign(left, right) :> Et
  
      let xor left right = Et.ExclusiveOr(left, right) :> Et
      let xorAsn left right = Et.ExclusiveOrAssign(left, right) :> Et
  
      let rhs left right = Et.RightShift(left, right) :> Et
      let rhsAsn left right = Et.RightShiftAssign(left, right) :> Et
  
      let lhs left right = Et.LeftShift(left, right) :> Et
      let lhsAsn left right = Et.LeftShiftAssign(left, right) :> Et
  
      let not target = (Et.Not target) :> Et
  
    module Math =
      let sub left right = Et.Subtract(left, right) :> Et
  