anchor.diff:      dict.Add(getMethod <@ int64 "" @>, emitCallMethod (getMethod <@ LanguagePrimitives.ParseInt64("") @>))
       dict.Add(getMethod <@ uint64 "" @>, emitCallMethod (getMethod <@ LanguagePrimitives.ParseUInt64("") @>))
   
  -    dict.Add(getMethod <@ byte 'a' @>, emitOpCode Conv_U1)
  -    dict.Add(getMethod <@ sbyte 'a' @>, emitOpCode Conv_I1)
       dict.Add(getMethod <@ char 'a' @>, doNothing)
  -    dict.Add(getMethod <@ float 'a' @>, emitOpCode Conv_R8)
  -    dict.Add(getMethod <@ float32 'a' @>, emitOpCode Conv_R4)
  -    dict.Add(getMethod <@ int 'a' @>, emitOpCode Conv_I4)
  -    dict.Add(getMethod <@ int16 'a' @>, emitOpCode Conv_I2)
  -    dict.Add(getMethod <@ uint16 'a' @>, emitOpCode Conv_U2)
  -    dict.Add(getMethod <@ int32 'a' @>, emitOpCode Conv_I4)
  -    dict.Add(getMethod <@ uint32 'a' @>, emitOpCode Conv_U4)
  -    dict.Add(getMethod <@ int64 'a' @>, emitOpCode Conv_I8)
  -    dict.Add(getMethod <@ uint64 'a' @>, emitOpCode Conv_U8)
  -    dict.Add(getMethod <@ nativeint 'a' @>, emitOpCode Conv_I)
  -    dict.Add(getMethod <@ unativeint 'a' @>, emitOpCode Conv_U)
  -
  -    dict.Add(getMethod <@ byte 1.0 @>, emitOpCode Conv_U1)
  -    dict.Add(getMethod <@ sbyte 1.0 @>, emitOpCode Conv_I1)
  +
       dict.Add(getMethod <@ char 1.0 @>, emitOpCode Conv_U2)
       dict.Add(getMethod <@ decimal 1.0 @>, emitCallMethod (getMethod <@ Convert.ToDecimal(1.0) @>))
       dict.Add(getMethod <@ float 1.0 @>, doNothing)
  -    dict.Add(getMethod <@ float32 1.0 @>, emitOpCode Conv_R4)
  -    dict.Add(getMethod <@ int 1.0 @>, emitOpCode Conv_I4)
  -    dict.Add(getMethod <@ int16 1.0 @>, emitOpCode Conv_I2)
  -    dict.Add(getMethod <@ uint16 1.0 @>, emitOpCode Conv_U2)
  -    dict.Add(getMethod <@ int32 1.0 @>, emitOpCode Conv_I4)
  -    dict.Add(getMethod <@ uint32 1.0 @>, emitOpCode Conv_U4)
  -    dict.Add(getMethod <@ int64 1.0 @>, emitOpCode Conv_I8)
  -    dict.Add(getMethod <@ uint64 1.0 @>, emitOpCode Conv_U8)
       dict.Add(getMethod <@ nativeint 1.0 @>, emitOpCode Conv_I)
       dict.Add(getMethod <@ unativeint 1.0 @>, emitOpCode Conv_U)
   
  
positive.code:     dict.Add(getMethod <@ sbyte 1 @>, doNothing)
      dict.Add(getMethod <@ char 1 @>, doNothing)
      dict.Add(getMethod <@ decimal 1 @>, emitCallMethod (getMethod <@ Convert.ToDecimal(1) @>))
      dict.Add(getMethod <@ float 1 @>, emitOpCode Conv_R8)
      dict.Add(getMethod <@ float32 1 @>, emitOpCode Conv_R4)
      dict.Add(getMethod <@ int 1 @>, doNothing)
      dict.Add(getMethod <@ int16 1 @>, doNothing)
      dict.Add(getMethod <@ uint16 1 @>, doNothing)
      dict.Add(getMethod <@ int32 1 @>, doNothing)
      dict.Add(getMethod <@ uint32 1 @>, doNothing)
      dict.Add(getMethod <@ int64 1 @>, emitOpCode Conv_I8)
      dict.Add(getMethod <@ uint64 1 @>, emitOpCode Conv_I8)
      dict.Add(getMethod <@ nativeint 1 @>, emitOpCode Conv_I)
      dict.Add(getMethod <@ unativeint 1 @>, emitOpCode Conv_I)
  
      dict.Add(getMethod <@ byte "" @>, emitOpCode (Call (Method (getMethod <@ LanguagePrimitives.ParseUInt32("") @>)))
                                        |>> emitOpCode Conv_Ovf_U1)
  
negative.code:     let dict = Dictionary<MethodInfo, CompileStackInfo list>(identityEqualityComparer)
      dict.Add(getMethod <@ -(1) @>, emitOpCode Ldc_I4_M1 |>> emitOpCode Mul_Ovf)
      dict.Add(getMethod <@ -(1.0) @>, emitOpCode Neg)
      dict.Add(getMethod <@ 1.0 - 1.0 @>, emitOpCode Sub)
      dict.Add(getMethod <@ 1.0 * 1.0 @>, emitOpCode Mul)
      dict.Add(getMethod <@ 1 - 1 @>, emitOpCode Sub_Ovf)
      dict.Add(getMethod <@ 1 * 1 @>, emitOpCode Mul_Ovf)
  
      dict.Add(getMethod <@ int 1 @>, doNothing)
      dict.Add(getMethod <@ int32 1 @>, doNothing)
      dict.Add(getMethod <@ char 'a' @>, doNothing)
  
      dict.Add(getMethod <@ byte "" @>, emitOpCode (Call (Method (getMethod <@ LanguagePrimitives.ParseUInt32("") @>)))
                                        |>> emitOpCode Conv_Ovf_U1)
  