```py class Foo: def __init__(self: "Foo", bar: i32): self.bar: i32 = bar def __repr__(self: "Foo") -> str: return str(self.bar) def main(): a: Foo = Foo(10) print(a) main() ``` Works fine but if we make a Foo instance inplace in print ```py def main(): print(Foo(10)) ``` this causes an infinite loop. This also happens in case of functions taking in a Foo param ```py def foobar(a: Foo): print(a) ``` I imagine we need to add an error for as of now unsupported feature PS: I had encountered a similar problem in my [PR](https://github.com/lcompilers/lpython/pull/2822) I simply threw an error for that case