import typeinfo
type CustomAny* = object
value: pointer
rawType: pointer
proc customToAny*[T](x: var T): CustomAny {.inline.} =
result = cast[CustomAny](toAny(x))
proc compareRuntimeTypes[A, B](a: var A, b: var B): bool =
result = customToAny(a).rawType == customToAny(b).rawType
var x = "hello world"
var y = ("hello", "world")
var z = "goodbye"
echo compareRuntimeTypes(x, y)
echo compareRuntimeTypes(x, z)