anchor.diff:                  | Some value -> Some (Option (Some value))
                   | None -> None
               | None -> Some (Option None)
  -
  -        and tryImportKeyValuePair (value : obj) (ty : Type) =
  -            let gargs = ty.GetGenericArguments ()
  -            let kvp = Reflection.objToKeyValuePair value
  -            let keyOpt = tryImport kvp.Key gargs.[0]
  -            let valueOpt = tryImport kvp.Value gargs.[1]
  -            match (keyOpt, valueOpt) with
  -            | (Some key, Some value) -> Some (Tuple [|key; value|])
  -            | (_, _) -> None
   
           and tryImportList (value : obj) (ty : Type) =
               let itemType = (ty.GetGenericArguments ()).[0]
  
positive.code:                 // otherwise, we have no conversion
                  else None
  
          and tryImportAddress (value : obj) (ty : Type) =
              Some (String ((AddressConverter ty).ConvertToString value))
  
  
negative.code:                 // otherwise, we have no conversion
                  else None
  
          and tryExportGuid (address : Expr) (_ : Type) =
              match address with
              | String str | Keyword str -> Some ((GuidConverter ()).ConvertFromString str)
              | _ -> None
  
          and tryExportKvp (tuple : Expr) (ty : Type) =
              match tuple with
              | Tuple [|fst; snd|] ->
  