The issue is in strformat, it parses until it hits a colon then it gives what it has to Nim to parse an expression ([relevant lines](https://github.com/nim-lang/Nim/blob/eca8f1d79f712613437918e397f7abb58bc29515/lib/pure/strformat.nim#L553-L559)). So the following also fails: import strformat type Foo = object num: int echo &"""<{Foo(num: 3)}>""" Run
You can report bugs with the compiler or standard library on the [GitHub issue tracker](https://github.com/nim-lang/Nim/issues).