anchor.diff:               (typeof<Vector2>.Name, (fun evaled _ -> match evaled with Vector2 value -> value :> obj |> Some | _ -> None))
                (typeof<char>.Name, (fun evaled _ -> match evaled with String value when value.Length = 1 -> value.[0] :> obj |> Some | _ -> None))
                (typeof<string>.Name, (fun evaled _ -> match evaled with String value -> value :> obj |> Some | _ -> None))
  +             (typedefof<_ Address>.Name, tryExportAddress)
  +             (typedefof<_ Relation>.Name, tryExportRelation)
                (typedefof<_ option>.Name, tryExportOption)
                (typedefof<KeyValuePair<_, _>>.Name, tryExportKvp)
                (typedefof<_ list>.Name, tryExportList)
  
positive.code:                 | _ -> None
              | _ -> None
  
          and tryExportOption (opt : Expr) (ty : Type) =
              match opt with
              | Option opt ->
  
negative.code:              (typeof<char>.Name, (fun (value : obj) _ -> match value with :? char as char -> Some (String (string char)) | _ -> None))
               (typeof<string>.Name, (fun (value : obj) _ -> match value with :? string as str -> Some (String str) | _ -> None))
               (typedefof<KeyValuePair<_, _>>.Name, (fun value ty -> tryImportKeyValuePair value ty))
               (typedefof<_ Address>.Name, (fun value ty -> tryImportAddress value ty))
               (typedefof<_ Relation>.Name, (fun value ty -> tryImportRelation value ty))
               (typedefof<_ option>.Name, (fun value ty -> tryImportOption value ty))
               (typedefof<_ list>.Name, (fun value ty -> tryImportList value ty))
               (typedefof<_ Set>.Name, (fun value ty -> tryImportSet value ty))
  