anchor.diff:                  let! (strName, strType, strCode) as str = declareStringConstant stringToPrint
                   let! regName = freshReg
                   let! (loadedStringName, loadedStringType, loadCode) = genLoadString regName str
  -                //do! append (sprintf "call i32 @puts(%s %s)\n" loadedStringType loadedStringName)
                   let putsCode = sprintf "call i32 @puts(%s %s)" loadedStringType loadedStringName
                   let fullString = sprintf "%s\n%s" loadCode putsCode
                   return ("","", fullString)
  
positive.code:                     sprintf "or %s %s, %s" sLhsType sLhsName sRhsName, sLhsType
                    | And, "i1" -> 
                      sprintf "and %s %s, %s" sLhsType sLhsName sRhsName, sLhsType
                    | GreaterThan, "i1" | GreaterThanOrEq, "i1" | LessThan, "i1" | LessThanOrEq, "i1" | Equals, "i1" | NotEquals, "i1" -> 
                      (icmpString op sLhsType sLhsName sRhsName, sLhsType)
                    | _,_ as err -> failwith (sprintf "%A not matched" err)
                let! (resName, resType, resCode) = newRegister tempReg targetType code
                let fullString = sprintf "%s\n%s\n%s\n" lhsCode rhsCode resCode
  
negative.code: 
      let getReverseType (revType:string) : PrimitiveType =
          match revType with
          | "i64" -> SimplePrimitive Int
  
      let getReceiveID (msgGenType:string) (actorName:string) : State<int, Environment> =
          state {
  