discard """
  line: 15
  errormsg: "type mismatch: got (int)"
"""

proc myGenericProc[T: object|tuple|ptr|ref|distinct](x: T): string = 
  result = $x

type
  TMyObj = tuple[x, y: int]

var
  x: TMyObj

assert myGenericProc(232) == "232"
assert myGenericProc(x) == "(x: 0, y: 0)"